注册 登录
编程论坛 C++教室

system("pause");为什么失灵求大神帮忙

EricBUPT 发布于 2012-12-28 00:16, 1304 次点击
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<ctype.h>
#include<windows.h>
#include <conio.h>
#include<time.h>


int main()
{
    char ID[7];
    srand(time(NULL));
    int validation=0;
    int judge(char []);
    int select,i,yunsuan,ysy1,ysy2,result,ans,zq,cw;
   
    zq=0;
    cw=0;
    while(validation==0)
    {
                     printf("请输入您的ID号码");
                     scanf("%s",&ID);
                     validation=judge(ID);
                     if(validation==0)
                     {
                                     printf("无效的ID号码\n");
                     }
    }
    printf("输入1开始测试\n");
    printf("输入2查看历史成绩\n");
    printf("输入3退出\n");
    scanf("%d",&select);
    switch(select)
    {
                  case 1:
                       for (i=1;i<=10;i++)//进行十次运算
                       {
                           yunsuan=1+rand()%4;//随机选择运算类型
                           switch(yunsuan)
                           {
                                          case 1://加法
                                                 ysy1=100;
                                                 ysy2=100;
                                                 while(ysy1+ysy2>100)
                                                 {
                                                                     ysy1=0+rand()%101;
                                                                     ysy2=0+rand()%101;
                                                 }
                                                 result=ysy1+ysy2;
                                                 printf("%d+%d=",ysy1,ysy2);
                                                 scanf("%d",ans);
                                                 if(ans==result)
                                                 zq++;
                                                 else
                                                 cw++;
                                                 break;
                                          case 2://减法
                                                 ysy1=1;
                                                 ysy2=100;
                                                 while((ysy1<ysy2)||(ysy1-ysy2>100))
                                                 {
                                                                     ysy1=0+rand()%101;
                                                                     ysy2=0+rand()%101;
                                                 }
                                                 result=ysy1-ysy2;
                                                 printf("%d-%d=",ysy1,ysy2);
                                                 scanf("%d",ans);
                                                 if(ans==result)
                                                 zq++;
                                                 else
                                                 cw++;
                                                 break;
                                          case 3://乘法
                                                 ysy1=100;
                                                 ysy2=100;
                                                 while(ysy1*ysy2>100)
                                                 {
                                                                     ysy1=0+rand()%101;
                                                                     ysy2=0+rand()%101;
                                                 }
                                                 result=ysy1*ysy2;
                                                 printf("%d*%d=",ysy1,ysy2);
                                                 scanf("%d",ans);
                                                 if(ans==result)
                                                 zq++;
                                                 else
                                                 cw++;
                                                 break;
                                          case 4://除法
                                                 ysy1=1000;
                                                 ysy2=3;
                                                 while((ysy1/ysy2>100)||(ysy1%ysy2!=0))
                                                 {
                                                                     ysy1=1+rand()%100;
                                                                     ysy2=1+rand()%100;
                                                 }
                                                 result=ysy1/ysy2;
                                                 printf("%d/%d=",ysy1,ysy2);
                                                 scanf("%d",ans);
                                                 if(ans==result)
                                                 zq++;
                                                 else
                                                 cw++;
                                                
                           }//switch结束
                       }//循环结束
                           break;   
                  //case 2:;break;
                  //case 3:;break;
                  //default:break;
    }//switch结束
printf("hi");
system("pause");
return 0;
}//main结束


int judge(char a[7])
{
    int b;
    if((a[0]>=65)&&(a[0]<=90)&&(a[1]>=65)&&(a[1]<=90)&&(a[6]=='\0'))
    b=1;
    else
    b=0;
    return b;
}
 
8 回复
#2
yuccn2012-12-28 00:29
怎么个失灵?

可以用getchar();来代替的
#3
EricBUPT2012-12-28 00:35
回复 2楼 yuccn
我用getchar();也是不管用的
#4
EricBUPT2012-12-28 00:36
回复 2楼 yuccn
源代码在这里,不知您是否愿意帮我调试一下
那个ID是两个大写字母加四个数字
#5
StarFall2012-12-28 08:14
PAUSE要大写吧。- -
#6
StarFall2012-12-28 08:17
加fflush(stdin);getch();也可以
#7
yuccn2012-12-28 09:59
回复 5楼 StarFall
cmd命令,不分大小写的
#8
conan87322013-01-10 17:29
后面的while循环不懂  感觉可以不要   直接取随机数就行
#9
allmy342013-01-17 23:08
case 4 后面没break
1