紧急求助:用c语言实现一个类似抽奖的程序??/

sandrafei 2005-05-09 11:13:44
我想实现:例如1到1000循环滚动,如没有击键就一直循环,如从键盘上击c键停止滚动此时那个数字就是获奖数字,此时再从键盘上击e键继续循环,如从键盘上击f键,程序结束。该怎样实现呢?
...全文
297 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
sandrafei 2005-05-10
  • 打赏
  • 举报
回复
c语言也可以实现多线程吗?能不能写给我看看!谢谢俄!
lingzantia 2005-05-10
  • 打赏
  • 举报
回复
用线程
sandrafei 2005-05-10
  • 打赏
  • 举报
回复
假如我这样写
#include <stdio.h>
void main()
{
int n=0
for(;;)
{
n++;
if(n>1000)
n=0;
//getchar();这样的键盘输入函数写在那里阿??如果写在循环里,循环就要停止直到输入
//为止,写在循环外又不能打断循环阿??
}
}
lingzantia 2005-05-10
  • 打赏
  • 举报
回复
呵呵,找别人的改的,惭愧!
kingofghost 2005-05-10
  • 打赏
  • 举报
回复
用多线程,很好时间,楼上几位都给出了正确的算法和程序,我就不花时间写了
du51 2005-05-10
  • 打赏
  • 举报
回复
那个多线程的.我越看越熟悉.呵呵.
lingzantia 2005-05-10
  • 打赏
  • 举报
回复
互相学习!sandrafei(飘) 你的按c之后就会退出?
sandrafei 2005-05-10
  • 打赏
  • 举报
回复
不好意思,对的!!
lingzantia 2005-05-10
  • 打赏
  • 举报
回复
按c之后ENTER
sandrafei 2005-05-10
  • 打赏
  • 举报
回复
lingzantia(迟早是高手):
我试了你的程序好像按c停不下来啊?
sandrafei 2005-05-10
  • 打赏
  • 举报
回复
我写了一个简单实现功能的c的:
#include <windows.h>
#include <stdio.h>
int g=0;
char key;
DWORD WINAPI ChildProcess( LPVOID lpParameter)
{
for ( ; ; )
{
g ++;
if(g>1000)
g=0;
if(key=='a')
goto loop;
}
loop:
ExitThread( 0 );
return g;
};

void main()
{
unsigned long threadID;
CreateThread( 0, 0, ChildProcess, 0, 0, &threadID);
key=getchar();
printf("g=%d",g);
}
谢谢大家的帮忙!!!!
lingzantia 2005-05-10
  • 打赏
  • 举报
回复
呵呵,说是自己写的,其实就是把别人的拿来改一下而已。
lingzantia 2005-05-10
  • 打赏
  • 举报
回复
刚学操作系统,费了九牛二虎之力总算搞定了


#include <stdio.h>
#include <windows.h>
#include <iostream.h>
#include <winbase.h>

BOOL bExit=FALSE;
static unsigned long int i = 0;

DWORD WINAPI SubThread(LPVOID pUnUse)
{
for (;;i++)
{ cout << i % 1000 + 1 << endl;
if (bExit) ExitThread(NO_ERROR);
}
}
//-----------------------------------------
int main()
{
cout << "摇奖开始!" << endl;
DWORD IDThread;
HANDLE hThread;
hThread = CreateThread(NULL, // no security attributes
0, // use default stack size
SubThread, // thread function
NULL, // no thread function argument
0, // use default creation flags
&IDThread); // returns thread identifier
if (hThread == NULL)
cout << "摇奖失败!" << endl;
cout << endl << endl;

char ch;

do
{
cin >> ch;
switch(ch)
{
case 'c':
if (SuspendThread(hThread)==0xFFFFFFFF)
cout << "摇奖错误!" << endl;
else cout << "中奖号是:" << i % 1000 + 1 << endl;
break;
case 'e':
if (ResumeThread(hThread)==0xFFFFFFFF)
cout << "重新摇奖失败!" << endl;
else cout << "重新摇奖!" << endl;
break;
case 'f':
bExit=TRUE;
cout << "摇奖结束!" << endl;
ExitProcess(NO_ERROR);
break;
}

}while (1);
return 0;
}
guofu_x 2005-05-09
  • 打赏
  • 举报
回复
用循环,然后根据字符判断就是了
ewayne 2005-05-09
  • 打赏
  • 举报
回复
算法不难,用循环就可以了

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧