大学c语言!!编程题 帮忙看看我做的答案有没有错误!!谢谢大家了。

如题所述

/*程序1 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“正确!”,否则显示“错误!”,程序结束。*/
#include
void main(void)
{
int a,b,s;
printf("请输入两个数:");
scanf("%d%d",&a,&b);
printf("请输入%d+%d的结果=",a,b);
scanf("%d",&s);
if(s==a+b)
printf("正确\n");
else
printf("错误\n");
}
/*程序2 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“正确!”,否则显示“错误! 请再尝试一次!”,直到做对为止。*/
#include
void main(void)
{
int a,b,s;
printf("请输入两个数:");
scanf("%d%d",&a,&b);
printf("请输入%d+%d的结果=",a,b);
scanf("%d",&s);
while(s!=a+b)
{
printf("错误! 请再尝试一次\n");
printf("请输入%d+%d的结果=",a,b);
scanf("%d",&s);
}
printf("正确\n");
}
/*程序3 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“正确!”,
否则提示重做,显示“错误! 请再尝试一次!”,最多给三次机会,
如果三次仍未做对,则显示“错误! 你已经尝试了三次。测试结束。”,程序结束。*/
#include
void main(void)
{
int a,b,s,n=0;
printf("请输入两个数:");
scanf("%d%d",&a,&b);
printf("请输入%d+%d的结果=",a,b);
scanf("%d",&s);n++;
while(s!=a+b)
{
printf("错误! 请再尝试一次\n");
printf("请输入%d+%d的结果=",a,b);
scanf("%d",&s);
n++;
if(n==3)break;
}
if(s!=a+b)
printf("错误! 你已经尝试了三次。测试结束。\n");
else
printf("正确\n");
}
/*程序4 连续做10道题,通过计算机随机产生两个1~10之间的加数
给学生出一道加法运算题,如果输入答案正确,则显示“正确!”,
否则显示“错误!”,不给机会重做,10道题做完后,按每题10分统计总得分,
然后打印出总分和错误题总数。*/
#include "time.h"
#include "stdlib.h"
#include
void main(void)
{
int a,b,s,n,fs=0,ts=0;
srand(time(NULL));
for(n=1;n<=10;n++)
{a=rand()%10+1;
b=rand()%10+1;
printf("请输入第%d题 %d+%d的结果=",n,a,b);
scanf("%d",&s);
if(s!=a+b)
{printf("错误!\n");ts++;}
else
{printf("正确\n");fs+=10;}
}
printf("总分=%d\n",fs);
printf("错误题数=%d\n",ts);
}
/*程序5 通过计算机随机产生10道加减运算题,两个操作数为1~10之间的随机数,
运算类型为随机产生的加、减运算中的一种,如果输入答案正确,则显示“正确!”,
否则显示“错误!”,不给机会重做,10道题做完后,按每题10分统计总得分,
然后打印出总分和错误题总数。*/
#include "time.h"
#include "stdlib.h"
#include
void main(void)
{
int a,b,s,n,fs=0,ts=0;
char fh;
srand(time(NULL));
for(n=1;n<=10;n++)
{
a=rand()%10+1;
b=rand()%10+1;
fh=rand()%2?'+':'-';
printf("请输入第%d题 %d %c %d的结果=",n,a,c,b);
scanf("%d",&s);
if(s!=(fh=='+'?a+b:a-b))
{printf("错误!\n");ts++;}
else
{printf("正确\n");fs+=10;}
}
printf("总分=%d\n",fs);
printf("错误题数=%d\n",ts);
}
/*【思考题】如果程序5要能进行加、减、乘、整除中的任意一种运算,又应该如何修改呢?*/
#include "time.h"
#include "stdlib.h"
#include
void main(void)
{
int a,b,s,ss,n,f=0,t=0,r;
char fh;
srand(time(NULL));
for(n=1;n<=10;n++)
{
a=rand()%10+1;
b=rand()%10+1;
r=rand()%4;
if(r==0)fh='+';
else if(r==1)fh='-';
else if(r==2)fh='*';
else fh='/';
printf("请输入第%d题 %d %c %d的结果=",n,a,fh,b);
scanf("%d",&s);
if(r==0)ss=a+b;
else if(r==1)ss=a-b;
else if(r==2)ss=a*b;
else ss=a/b;
if(s!=ss)
{printf("错误!\n");t++;}
else
{printf("正确\n");f+=10;}
}
printf("总分=%d\n",f);
printf("错误题数=%d\n",t);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-08
没有错误,正确!
第2个回答  2016-01-08
目测没有发现错误在哪!
当然,如果你要说你输入浮点数,那就不对了,会精度丢失追问

什么意思 不太明白? 不好意思我很菜的 求解?

追答

就是没错,因为你不是 int X吗?int不是整型数嘛!还有double浮点数,但是,你这题没要求那么多,是对的

追问

明白了 谢谢你啊 x可能不是整型数 应该用实型数更好一点 应该用double。。。万分感谢

本回答被提问者采纳
相似回答