C语言闰年判断程序如何实现连续多输入直至无剩余输入
C语言闰年判断程序多输入修改方案
你当前的代码仅执行单次输入、判断逻辑,因此处理完一个输入就会直接退出。要实现连续处理多个输入直到所有内容处理完毕,只需通过scanf的返回值控制循环即可:scanf返回值为成功读取的变量个数,当检测到输入流结束(EOF)时会返回小于1的值,以此作为循环终止条件即可。
修改后完整代码
#include <stdio.h> int main() { int y; // 循环读取输入,只要成功读到整数就执行判断 while (scanf("%d", &y) == 1) { if (y % 400 == 0) { printf("leap\n"); } else if (y % 100 == 0) { printf("nonleap\n"); } else if (y % 4 == 0) { printf("leap\n"); } else { printf("nonleap\n"); } } return 0; }
关键说明
- 原代码最后一处
printf多余传入了变量y,格式化字符串中没有对应占位符,属于冗余参数,已删除 - 如果是手动输入测试:Windows系统按下
Ctrl+Z后回车即可发送EOF终止程序,Linux/macOS系统按下Ctrl+D即可终止 - 直接通过管道/文件传入输入内容时,程序会自动处理完所有内容后退出,完全匹配你给出的输入输出预期
内容的提问来源于stack exchange,提问作者Fyre Steinfeld
相关产品推荐
相关产品推荐

