如何用C语言从键盘输入若干个整数,以0结束。将这些整数(0除外)存入顺表中
时间: 2024-09-22 14:06:39 浏览: 44
C语言程序设计-编写程序。从键盘读入8个整数存入数组a中并输出这8个数据。和、最大值、最小值及平均值。正数之和、负数之和
5星 · 资源好评率100%
在C语言中,你可以使用`scanf`函数从键盘读取用户输入,并使用数组来存储整数。以下是一个简单的步骤说明:
1. 首先,定义一个动态大小的整数数组,用于存储输入的整数。因为不知道用户会输入多少个非零数字,我们可以选择先假设一个最大容量,然后在读取过程中检查是否达到这个容量。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_NUMS 100 // 设置一个足够大的数组大小
int main() {
int nums[MAX_NUMS];
int count = 0; // 记录已输入的非零数字个数
// 使用do-while循环,直到遇到0或达到MAX_NUMS为止
do {
printf("请输入一个整数 (0表示结束): ");
int input;
if (scanf("%d", &input) == 1 && input != 0) { // 检查输入是否有效并非零
nums[count] = input;
count++;
} else {
printf("错误! 请输入一个整数.\n");
scanf("\n"); // 清除无效输入
}
} while (count < MAX_NUMS && input != 0);
// 如果用户输入了0但未达到最大数目,可以考虑直接退出循环
if (input == 0)
count--;
// 打印数组中的所有非零元素
for (int i = 0; i < count; i++) {
printf("第 %d 个数字是: %d\n", i+1, nums[i]);
}
return 0;
}
```
在这个程序中,我们使用`do-while`循环来持续读取用户的输入,直到遇到0或者达到了预设的最大值。`scanf`函数会将输入的整数赋值给`input`,如果输入的是0或者不是有效的整数,我们会忽略当前输入并提示用户重新输入。
阅读全文