永发信息网

printf后面的语句会连续输出两次

答案:2  悬赏:80  手机版
解决时间 2021-03-09 09:54
#include
#include
#include
#define ExerNumber 10;

void test()
{
int algType=0;
int i;
int points=0;
int num1=0,num2=0;
int result=0;
int answer=0;

printf("现在开始计算,请看题:\n");
for(i=1;i<=10;i++)
{
srand((unsigned int)time(NULL));
num1=rand()%100;
num2=rand()%100;
algType=rand()%3+1;
switch(algType)
{
case 1:
result=num1+num2;
printf("%d+%d",num1,num2);
break;
case 2:
if(num1>num2)
{
printf("%d-%d",num1,num2);
result=num1-num2;
}
else
{
printf("%d-%d",num2,num1);
result=num2-num1;
}
break;
case 3:
result=num1*num2;
printf("%d*%d",num1,num2);
break;
}
printf("=?");
scanf("%d",&answer);
if(answer==result)
points++;
}
printf("你的成绩:\n");
switch(points)
{
case 10:
case 9: printf("优秀。");break;
case 8:
case 7: printf("良好。");break;
case 6:
case 5: printf("不错。");break;
default:printf("You should work hard!!");
}
}

void main()
{
char YesOrNo;
test();
while (1)
{
printf("\n你还想继续吗(y/n)?");
scanf("%c",&YesOrNo);
if(YesOrNo == 'n'||YesOrNo == 'N') exit(0);
if(YesOrNo == 'y'||YesOrNo == 'Y') test();
}
}
为什么输出时输出2个printf("\n你还想继续吗(y/n)?");
最佳答案
因为输入输出流没清空,第一个printf之后scanf马上读入了一个值,于是再次循环
在printf("\n你还想继续吗(y/n)?");前加上一句fflush(stdin);来清空输入流就可以了
全部回答

答案是5

但是楼上没有给出原因

其实 \65是进行的八进制的输出

\65相当于 065

printf("\65 %c", (char)065);

效果是一样的

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
金水五金水暖建材在哪里啊,我有事要去这个地
i don't know 中do和know都是动词,有没有错误
求泡澡配方!
黄耳龟幼苗怎么分公母
我的世界手机版刷怪箱在哪找,求图
结婚时房产证是我公公的名字,婚后因房产证丢
谢祭酒代王三天是真实的吗
公积金交多少
为什么小叶紫檀瘤疤手串有缺肉
美发店里员工办成一张卡有什么奖励
有个审讯心理学的东西,说两个犯罪嫌疑人分开
纳米汗蒸健康生活馆地址在哪,我要去那里办事
hacat细胞是什么细胞
我髋骨处在和同学玩时被他一个大背摔到了地上
西北政法的新闻传播专业怎么样 知乎
推荐资讯
在电脑上怎么打冒号
武威创伤骨科医院-门诊在什么地方啊,我要过
怎么在家里能上网也能买到超市东西
龙城大药房华龙店在什么地方啊,我要过去处理
下列属于资源税应税产品的有()。A.天然原油
三峡大瀑布怎么去
独立显卡自带的驱动光盘好还是网上的好
河北人才市场户口页提取
最近人家的母鸡总是跑到我们家下蛋,是好兆头
西京医院脑干听力检查多少钱
有关人口合理容量的叙述正确的是DA. 人口合理
天意茶社在什么地方啊,我要过去处理事情
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?