C语言编程问题,下面的这个程序为啥在添加了输出答对、答错题目个数,就会出现主函数未定义的问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言编程问题,下面的这个程序为啥在添加了输出答对、答错题目个数,就会出现主函数未定义的问题?相关的知识,希望对你有一定的参考价值。

以上省略

//删除数组中的第n个元素
Status DeleteNode(int n)

return TRUE;


//输出第n道题题目
void printNode(TestNode p,int n)

printf("(%d) ",n);
printf("%s\n",p.subject);
printf(" A %s ",p.option1);
printf(" B %s \n",p.option2);
printf(" C %s ",p.option3);
printf(" D %s ",p.option4);


//判断m是否为p题目的答案,若是返回TRUE,否则返回ERROR
Status Match(TestNode p,char m)
if(m==p.result) return TRUE;
else return ERROR;


//进行答题
void answer(int sum)

int i,score=0,Num,m=0,n=0;//m、n分别为计数答对和答错题目的数量
char r;

for(i=1;i<=sum;i++)
Num= rand()%sum; //随机函数,以随机选定何题进行解答
printNode(Testquestions[Num],Num+1);
printf("\n请输入答案:");
scanf("%c",&r);getchar();
if( Match(Testquestions[Num],r)) //调用函数IsMatch判断正误
printf("\n答案正确!\n");
score++;
m++;//答对题目数量加1

else printf("\n答案错误!\n");
n++;//答错题目数量加1

printf("\n你的总成绩为:%d\n",score);
printf("\n你总共答对了:%d\n",m);//输出答对的题目数量
printf("\n你总共答错了:%d\n",n); //输出答错的题目数量


// 主函数
void main()
char flag='N';
int N=0,i, sum,score=0,chose;

/*printf("输入想建立的题目文件题目数:");
scanf("%d",&N);getchar();
InputTitle(N);*/
ReadNode(N);
while(flag=='N'||flag=='n')
printf("\t\t\t单项选择题标准化考试系统\n ");
printf("\n");
printf(" \t\t\t1 进行答题并判卷\n");
printf(" \t\t\t2 显示整张试卷内容\n");
printf(" \t\t\t3 插入试题\n");
printf(" \t\t\t4 保存到文件\n");
printf(" \t\t\t5 退出系统\n");
printf(" \t\t\t 请选择:");
scanf("%d",&chose);getchar();
switch(chose)
case 1:system("cls");
printf("请输入你想要的答题数目:");
scanf("%d",&sum);getchar();
answer(sum);
break;
case 2:system("cls");
for(i=1;i<=N;i++)
printNode(Testquestions[i-1],i);
printf("\n");

break;
case 3:system("cls");InsertNode(N);break;
case 4:system("cls");
if(SaveNode(N)) printf("保存成功!\n");
else printf("保存失败!\n");break;
case 5:printf("你将退出系统(Y or N)?");
scanf("%c",&flag);getchar();
if(flag=='Y'||flag=='y') exit(0);
system("cls");break;
default:printf("请输入正确选择!\n");


//输出第n道题题目最后遗漏一个,函数没有结束,即
//判断m是否为p题目的答案,若是返回TRUE,否则返回ERROR
Status Match(TestNode p,char m)
if(m==p.result) return TRUE;
else return ERROR;

//这里增加
另外,
else printf("\n答案错误!\n");
n++;//答错题目数量加1
应该增加,即
else printf("\n答案错误!\n");
n++;//答错题目数量加1
参考技术A main()

int a,b,c,max;
scanf("%d%d%d",&a,&b,&c);
max=a;
if(max<b);//多了个分号
max=b;
if(max<c);//多了个分号
max=c;
printf("maxnum is %d",max);
getch();

这个C语言小程序在每输入三个数后会不会自动换行,我感觉没问题,为啥运行时不自动换行

c语言中实际上用任何方法(常规库函数)都无法获取回车。因为控制台是在你输入完一行并点下回车之后,把除了回车之外的字符一起送到程序输入缓存中的,你只能用变通的方法,比如一次获取一行、一个字符或一个数字,设置多个输入,那么回车后,它必然会进去下一个输入或者代码块。
  例如:用两个scanf命令
  scanf("%d",&a);
  scanf("%d",&b);
  这样就能实现回车后进入下一个输入或者代码块。
参考技术A 你这段代码
在你输入的时候应该是有体现的
比如你输入了3个数,再输入第4个数的时候应该是换行了的

以上是关于C语言编程问题,下面的这个程序为啥在添加了输出答对、答错题目个数,就会出现主函数未定义的问题?的主要内容,如果未能解决你的问题,请参考以下文章

C语言指针初学者 请帮我看看下面的提 为啥调用函数返回值是char型的 这样不就只能返回一个字符了吗

C语言编程 编写程序,在屏幕上输出下面的图案(要求用for 循环实现)。 * * *

c语言中连续3个if语句 三种情况,大于等于小于0,为啥只执行第一个if就不执行下面的了?请问

c语言中连续3个if语句 三种情况,大于等于小于0,为啥只执行第一个if就不执行下面的了?请问

为啥这个异步程序不交错输出?

这个C语言程序输入字母会出现死循环,为啥?怎么办?