do-while循环中scanf中的错误 [英] error in the scanf in the do-while loop

查看:141
本文介绍了do-while循环中scanf中的错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

#include< stdio.h>

void main()

{

int i,n,month,day,calcday, calcmonth;

char flag =''y'';

char weekday [] [10] = {" Friday"," Saturday"" Sunday" ,星期一,星期二,星期三,星期四;};

int usermonth [] = {31,28,31,30,31,30,31, 31,30,31,30,31};

do

{

printf("输入日期(日,月): ");

scanf("%d%d",& day,& month);

calcday = day-1;

calcmonth = month-1;

for(i = 0; i< calcmonth; i ++)

{

calcday + = usermonth [ i];

}

n = calcday%7;


printf("%d /%d / 2010 is% s \ n",day,month,weekday [n]);


printf(你想继续吗(是/否)?;


scanf("%c"& flag);

}


while(flag =='' y'');


}

#include<stdio.h>
void main()
{
int i, n, month, day, calcday, calcmonth;
char flag=''y'';
char weekday[][10]={"Friday","Saturday","Sunday","Monday","Tuesday", "Wednesday","Thursday"};
int usermonth[]={31,28,31,30,31,30,31,31,30,31,30,31};
do
{
printf("Enter the date (Day, Month): ");
scanf("%d %d",&day ,&month);
calcday=day-1;
calcmonth=month-1;
for(i=0;i<calcmonth;i++)
{
calcday+=usermonth[i];
}
n=calcday%7;

printf("%d/%d/2010 is %s \n",day, month, weekday[n]);

printf("Do you want to continue (y/n)? ");

scanf("%c",&flag);
}

while(flag==''y'');

}

推荐答案

转载。

好​​吧,如果问题是做什么这取决于你需要达到的目标。如果没关系,我会继续使用scanf(%c),直到我得到y或n。
Reproduced.
Well, if the question was "what to do" it depends on what do you need to achieve. If it doesn''t matter, i''d continue with scanf("%c") till I get either ''y'' or ''n''.


使用getch()而不是scanf()它会正常工作
use getch() instead of scanf() it will work fine


我无法理解你mr.newb16

i希望每次scanf for the flag to知道它是在循环中完成还是离开
i can''t understand you mr.newb16
i want in each time scanf for the flag to know if it complete in the loop or get out


这篇关于do-while循环中scanf中的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆