c语言陷入死循环,应该怎么改呢?拜托拜托,求大佬解答

求大佬查错,代码如下void GetDaysOfDate()//得到日期{ int sYear = 0, wMonth = 0, wDay = 0; system("cls"); printf_s("◆1. 输入任意公历日期,查询该日期距离今天数\n\n"); int ret = 0; struct tm *ptr; time_t it; it = time(NULL); ptr = localtime(&it); do { printf_s("请输入公历日期,年 月 日:>"); scanf_s("%d %d %d", &sYear, &wMonth, &wDay); ret = DateCheck(sYear, wMonth, wDay); if (ret != 0) { printf_s("\n您的输入有误,"); } else { int days = day_diff(sYear, wMonth, wDay, ptr->tm_year + 1900, ptr->tm_mon + 1, ptr->tm_mday); if (days < 0) ret = 0; else { printf_s("日期%4d年%02d月%02d日距离今天(%4d年%02d月%02d日) %d天\n", sYear, wMonth, wDay, ptr->tm_year + 1900, ptr->tm_mon + 1, ptr->tm_mday, days); } } } while (ret == 0); system("pause");

第1个回答  2020-11-14
1、DateCheck()函数是否处理有问题
2、输入要英文模式下数字,
3、单步骤调试一下
第2个回答  2020-12-21
你是怎么输入的?从scanf_s的写法,应该是三个空格隔开的数字对于软件错误,绝大多数是不可能根据代码看出来的,一个程序员的基本只能是调试。你需要在DateCheck函数入口处设一个断点,看看输入的值到底是多少,然后DateCheck返回失败
第3个回答  2020-11-14
不要重复一个命令,要根据自己脚本设计,需要用不同指令来完成自己的指令。
第4个回答  2020-11-14
正确的做法是Ctrl+Break,然后修改程序。重新运行后它问你是否重新编译,按是“Y”。

c语言陷入死循环,应该怎么改呢?拜托拜托,求大佬解答
1、DateCheck()函数是否处理有问题 2、输入要英文模式下数字,3、单步骤调试一下

C语言中, while(条件){} 循环体内没有执行语句,这个怎么理解啊?拜托各 ...
一种情况是死循环 因为循环体内是空的,改变不了条件的值 另一种情况是 等待

c语言中 while()不带执行语句是什么意思拜托各位大神
分号就是语句啊,只不过空语句什么都不干。 换句话说,如果a为1,就是个死循环了,一直在检测a是不是为1。 补充: 空循环,若条件也是固定不变的,那就是个死循环了。若不是死循环,往往是用来等时间的。满意请采纳

c语言编程,完全没有头绪,请求帮助,拜托了,要用c语言,不要用c++,最好有...
从第六个条件可以得到b,c满足(2);从第七个可以看出c和d其中有一个是属于(3)的,那么从身材看不出就从身高看,从第八个可以看出a和c是满足身高的。所以可以理解为a,c属于第三个。那么c是高个子,细身材,又是黄头发,那么可以得出(1)中未知的那个就是c,再看(4),满足条件的只有C。...

c语言中这道题怎么做 求解思路 拜托 拜托
过程 m=(m*y);y=y-m;y=y+y;结果 y=-16

因为最近要考C语言,所以……拜托啦。 假定所有变量均已正确定义,下列程 ...
c语言中,0为假,非0为真。k1不等于0,为真,故!k1为假,x--不执行,跳到第2句,k2也不等于0,为真,执行x=4。程序结束。故x=4

有没有C语言大神,给我讲讲这个程序怎么运行?一步步详细分析一下,拜托...
c表示输出一个字符,分别对应输出c1,c2,c3,c4和c5 '\\101'表示八进制101即十进制65对应的ASCII字符,为'A',所以c4='A''\\116'表示八进制116即十进制78对应的ASCII字符,为'N',所以c5='N''\\t'表示水平制表符Tab,当其前面有n个字符时,会先补齐8-n个空格,再输出后面的内容 因此第一个'\\...

在C语言之中printf("*%d",i);是什么意思?拜托了。谢谢。
是输出的意思!意思就是 输出一个*加一个整型的占位符 然后在此占位符中填入 i 这个数值!明白?

简单的C语言错误... run-time check failure#2是怎么回事呢?
下标超界 例子:for (i = 0; i <= 13; 。。。 当 i=11,12,13 时 if (input[i] == input[i + 1] && input[i + 1] == input[i + 2]) -- 这个式子里下标超界了。=== 输入0结束:if (strcmp(intput,"0")==0) return 0; 或 exit(0); 都可以 ...

C语言里面有一行真看不懂了,求教各位srand((unsigned)time(NULL))拜托...
当我们将其该种子改为2 或 3 时候,每次使用的时候都对应于种子的固定的随机数,因此,人们将固定的种子产生的随机数,为伪随机数。如下 每次运行的时候,都是种子2对应的固定随机数组(系统算法根据种子2算出来的)每次运行的时候,都是种子3对应的固定随机数组(系统算法根据种子3算出来的)那现在...

相似回答