do-while 循环的 C 语言代码示例,并确保它超过 1000 字。以下是一个示例,它包含了一个简单的 do-while 循环,用于从用户那里读取整数输入,直到用户输入一个非正数为止。然后,我们将计算并打印出所有正整数的和。此外,我还会扩展示例,包括一些额外的功能,比如错误检查和用户交互。
#include <stdio.h> int main() { int number, sum = 0; char again = 'y'; // 用于询问用户是否继续输入的标志 // 主循环,询问用户是否要输入数字 do { printf("请输入一个正整数(输入非正数结束):"); if (scanf("%d", &number) != 1) { // 输入错误处理 printf("输入无效,请输入一个整数。\n"); while (getchar() != '\n'); // 清除输入缓冲区 continue; // 跳过本次循环的剩余部分 } // 检查是否为正整数 if (number <= 0) { printf("已结束输入。\n"); break; // 跳出 do-while 循环 } sum += number; // 累加正整数 // 询问用户是否继续输入 printf("要继续输入吗?(y/n):"); scanf(" %c", &again); // 注意空格,用于跳过任何剩余的空白字符 // 清除输入缓冲区,以防有多余的字符 while (getchar() != '\n'); } while (again == 'y' || again == 'Y'); // 当用户输入 'y' 或 'Y' 时继续循环 // 输出结果 printf("所有输入的正整数之和为:%d\n", sum); // 扩展示例:使用 do-while 循环进行字符串的逆序打印 char str[100]; int length, i = 0; printf("请输入一个字符串:"); scanf("%99s", str); // 限制输入长度以防止缓冲区溢出 length = 0; // 计算字符串长度 do { length++; } while (str[length - 1] != '\0'); printf("逆序打印的字符串为:"); i = length - 1; // 从字符串末尾开始 do { printf("%c", str[i]); i--; } while (i >= 0); printf("\n"); return 0; }
在这个示例中,我们首先使用 do-while 循环从用户那里读取正整数输入,直到用户输入一个非正数为止。然后,我们计算所有输入的正整数的和,并打印结果。接下来,我们扩展了示例,使用另一个 do-while 循环来逆序打印用户输入的字符串。我们还添加了一些错误检查来处理无效的输入,并使用 getchar() 函数来清除输入缓冲区,以防有多余的字符影响后续的输入。这些扩展功能增加了代码的复杂性和实用性,同时也满足了超过 1000 字的要求。