
请教一个c语言程序设计问题------------高分。。。。。。。。。。。。。。。。。。。。。。。。。。。。
我的作业是做一个10以内的加减法运算,下面是我的程序。#include<stdio.h>#include<stdlib.h>#include<time.h>intmain...
我的作业是做一个10以内的加减法运算,下面是我的程序。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ()
{
int num_all;
int num_right;
int i;
int x, y, m;
int temp1,temp2;
printf("请输入题目数:");
scanf("%d",&num_all);
num_right = 0 ;
for(i=0;i<num_all;i++)
{
srand(time(NULL));
x = rand()%9+1 ;
y = rand()%9+1 ;
if(rand()%2)
{
printf("%d + %d = ",x,y);
scanf("%d",&m);
if(m==x+y)
{
printf("恭喜你答对了!\n");
num_right++ ;
}
else
printf("很遗憾你答错了!\n");
}
else
{
temp1 = (x>y?x:y) ;
temp2 = (x<y?x:y) ;
x = temp1 ;
y = temp2 ;
printf("%d - %d = ",x,y);
scanf("%d",&m);
if(m==x-y)
{
printf("恭喜你答对了!\n");
num_right++ ;
}
else
printf("很遗憾你答错了!\n");
}
}
printf("\n\n总题目数:%d"
"\n正确数:%d"
"\n正确率:%.2f%%\n""分数:%d\n",num_all,num_right,(float)(num_right)*100/num_all,(num_right)*100/num_all);
system("pause");
return 0;
}
请问怎么怎实现这样一个功能,在结尾处询问做题者是否再做一次,重新循环一轮新的题。
另再帮忙加点东西,感觉内容太少,太简单了。 展开
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ()
{
int num_all;
int num_right;
int i;
int x, y, m;
int temp1,temp2;
printf("请输入题目数:");
scanf("%d",&num_all);
num_right = 0 ;
for(i=0;i<num_all;i++)
{
srand(time(NULL));
x = rand()%9+1 ;
y = rand()%9+1 ;
if(rand()%2)
{
printf("%d + %d = ",x,y);
scanf("%d",&m);
if(m==x+y)
{
printf("恭喜你答对了!\n");
num_right++ ;
}
else
printf("很遗憾你答错了!\n");
}
else
{
temp1 = (x>y?x:y) ;
temp2 = (x<y?x:y) ;
x = temp1 ;
y = temp2 ;
printf("%d - %d = ",x,y);
scanf("%d",&m);
if(m==x-y)
{
printf("恭喜你答对了!\n");
num_right++ ;
}
else
printf("很遗憾你答错了!\n");
}
}
printf("\n\n总题目数:%d"
"\n正确数:%d"
"\n正确率:%.2f%%\n""分数:%d\n",num_all,num_right,(float)(num_right)*100/num_all,(num_right)*100/num_all);
system("pause");
return 0;
}
请问怎么怎实现这样一个功能,在结尾处询问做题者是否再做一次,重新循环一轮新的题。
另再帮忙加点东西,感觉内容太少,太简单了。 展开
4个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ()
{
int num_all;
int num_right;
int i;
int x, y, m;
int temp1,temp2;
while(1)
{
printf("请输入题目数:");
scanf("%d",&num_all);
num_right = 0 ;
for(i=0;i<num_all;i++)
{
srand(time(NULL));
x = rand()%9+1 ;
y = rand()%9+1 ;
if(rand()%2)
{
printf("%d + %d = ",x,y);
scanf("%d",&m);
if(m==x+y)
{
printf("恭喜你答对了!\n");
num_right++ ;
}
else
printf("很遗憾你答错了!\n");
}
else
{
temp1 = (x>y?x:y) ;
temp2 = (x<y?x:y) ;
x = temp1 ;
y = temp2 ;
printf("%d - %d = ",x,y);
scanf("%d",&m);
if(m==x-y)
{
printf("恭喜你答对了!\n");
num_right++ ;
}
else
printf("很遗憾你答错了!\n");
}
}
printf("\n\n总题目数:%d"
"\n正确数:%d"
"\n正确率:%.2f%%\n""分数:%d\n",num_all,num_right,(float)(num_right)*100/num_all,(num_right)*100/num_all);
cout<<"是否再做一次?(Y/N):"
char ch;
cin>>ch
if(ch != 'Y' || ch != 'y')
{
cout<<"程序退出"<<endl;
return 0;
}
}
//system("pause");
//return 0;
}
望采纳!
#include <stdlib.h>
#include <time.h>
int main ()
{
int num_all;
int num_right;
int i;
int x, y, m;
int temp1,temp2;
while(1)
{
printf("请输入题目数:");
scanf("%d",&num_all);
num_right = 0 ;
for(i=0;i<num_all;i++)
{
srand(time(NULL));
x = rand()%9+1 ;
y = rand()%9+1 ;
if(rand()%2)
{
printf("%d + %d = ",x,y);
scanf("%d",&m);
if(m==x+y)
{
printf("恭喜你答对了!\n");
num_right++ ;
}
else
printf("很遗憾你答错了!\n");
}
else
{
temp1 = (x>y?x:y) ;
temp2 = (x<y?x:y) ;
x = temp1 ;
y = temp2 ;
printf("%d - %d = ",x,y);
scanf("%d",&m);
if(m==x-y)
{
printf("恭喜你答对了!\n");
num_right++ ;
}
else
printf("很遗憾你答错了!\n");
}
}
printf("\n\n总题目数:%d"
"\n正确数:%d"
"\n正确率:%.2f%%\n""分数:%d\n",num_all,num_right,(float)(num_right)*100/num_all,(num_right)*100/num_all);
cout<<"是否再做一次?(Y/N):"
char ch;
cin>>ch
if(ch != 'Y' || ch != 'y')
{
cout<<"程序退出"<<endl;
return 0;
}
}
//system("pause");
//return 0;
}
望采纳!
追问
谢谢你的回答,按照第一个人的回答,我已经做好了。不好意思。只能采纳他了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
标准C里面根本没有bool类型 cout cin这些东西
除了chiqp1986其他人的答案都不是标准C
其实有更简单的办法 在程序开始前加个位置比如retry:
结尾的时候加个输入是否重做的判断 判断重做的话 直接goto retry即可使程序从retry处重新运行。
除了chiqp1986其他人的答案都不是标准C
其实有更简单的办法 在程序开始前加个位置比如retry:
结尾的时候加个输入是否重做的判断 判断重做的话 直接goto retry即可使程序从retry处重新运行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关于上面那个功能很简单,大体的思路
bool flag = 1;
while(flag){
printf("如果要再做一次请按1,否则按0退出\n");
scanf("%d", &flag);
}
不知道你看得明白么就是在外面加一层判断就行了。再加点东西的话,你可以加强输入检查,比如你要求10以内,然后如果输入的数字不符合要求的话程序会怎么跑,就是保证不管别人怎么输入,这个程序都不会出现很奇葩的错误就够了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ()
{
char redo = 'n';
do
{
/*
*
*原代码
*
*/
do
{
redo='n';
printf("是否再做一次(Y or N):N");
scanf(%c,redo);
}
while (redo!='y' && redo!='Y' && redo!='n' && redo!='N');
}
while (redo=='y' || redo=='Y');
system("pause");
return 0;
}
加一个大循环。希望对你有帮助。
追问
谢谢你的回答,按照第一个人的回答,我已经做好了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询