do-while循环中scanf中的错误 [英] error in the scanf in the do-while loop
问题描述
#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屋!