這是一個隨機出10道四則運算題的程序,
正不正確現在還不清楚,
但在編譯時出現了大量的缺少“;”和“未聲明變量”的提示,
編譯環境 是VS2012,
求助。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int Compute(int a,int b,int op);
void Print(int flag);
int main()
{
srand((unsigned)time(NULL));
int x,y,z;
int i,j=0;
int flag;
x=rand()%10+1;
y=rand()%10+1;
if(x%y==0)
z=rand()%4;
else z=rand()%3;
for(i=1;i<=10;i++)
{
flag=Compute(x,y,z);
Print(flag);
j=j+flag;
}
printf("Total score:%d\n",j*10);
printf("Wrong answer(s):%d\n",10-j);
return 0;
}
int Compute(int a,int b,int op)
{
char op2;
int temp1,temp2,input,answer;
switch(op)
{
case 0:op2='+';
answer=a+b;
break;
case 1:op2='-';
temp1=(a>b?a:b);
temp2=(a>b?b:a);
a=temp1;
b=temp2;
answer=a-b;
break;
case 2:op2='*';
answer=a*b;
break;
case 3:op2='/';
answer=a/b;
break;
}
printf("%d%c%d=",a,op2,b);
scanf("%d",&input);
if(input==answer)
return 1;
else return 0;
}
void Print(int flag)
{
if(flag==1)
printf("Right!");
else printf("Not correct!");
return;
}
這個是C語言的程序,需要將定義和實現分開來寫,先將所需要的變量定義,在執行操作語句。
這個是改過後的代碼
int main()
{
int x;
int y;
int z;
int i = 0;
int j = 0;
int flag;
srand((unsigned)time(NULL));
/* 將變量的聲明寫在前面
int x;
int y;
int z;
int i = 0;
int j = 0;
int flag;
*/
x=rand()%10+1;
y=rand()%10+1;
if(x%y==0)
z=rand()%4;
else z=rand()%3;
for(i=1;i<=10;i++)
{
flag=Compute(x,y,z);
Print(flag);
j=j+flag;
}
printf("Total score:%d\n",j*10);
printf("Wrong answer(s):%d\n",10-j);
return 0;
}