C语言会出现的错误,c语言,能运行但是偶尔会出现些错误,请高手们帮忙看看错在哪里啦...
匿名用戶
1級
2010-06-22 回答
printf("Now the test begin!Come on!\n");
printf("Press any key to start.\n");
srand((unsigned)time(0));
for(i=0; i<10; i++)
{
num1[i]=rand()%100;
num2[i]=rand()%100;
op=rand()%4;
switch(op)
{
case 0:
while(num1[i]+num2[i] >= 100)
{
num1[i]=rand()%100;
num2[i]=rand()%100;
}
printf("%d+%d=?\n",num1[i],num2[i]);
result[i]=num1[i]+num2[i];
opt[i]='+';
break;
case 1:
while(num1[i] < num2[i])
{
num1[i]=rand()%100;
num2[i]=rand()%100;
}
printf("%d-%d=?\n",num1[i],num2[i]);
result[i]=num1[i]-num2[i];
opt[i]='-';
break;
case 2:
while(num1[i]*num2[i]>=100)
{
num1[i]=rand()%100;
num2[i]=rand()%100;
}
printf("%d*%d=?\n",num1[i],num2[i]);
result[i]=num1[i]*num2[i];
opt[i]='*';
break;
case 3:
while(num2[i]==0||(num1[i]+0.0)/(num2[i]+0.0)!=int(num1[i]/num2[i]))
{
num1[i]=rand()%100;
num2[i]=rand()%100;
}
printf("%d/%d=?\n",num1[i],num2[i]);
result[i]=num1[i]/num2[i];
opt[i]='/';
break;
}/*end of switch*/
scanf("%d",&answer[i]);
if(answer[i]==result[i])
point++;
}
printf("The test is over,press any key to check your scores.\n('R' for right,'W' for wrong)\n");
system("pause");
printf("Your score is %d.",point*10);
以上程序可以運行
出現錯誤的原因是:
1.出現不能出現*,是因為while(num1[i]*num2[i]>=100);這后面有一個;使得這個循環成為了死循環
2.出現錯誤2的原因是,沒有正確處理當符號為+和-不符合條件時,應做的操作
希望對你的程序有所幫助
總結
以上是生活随笔為你收集整理的C语言会出现的错误,c语言,能运行但是偶尔会出现些错误,请高手们帮忙看看错在哪里啦...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux查看流量开源,Linux流量监
- 下一篇: c+语言+null,C/C++语言中NU