一次输入多个数据的储存

用循环存储如下:

int main()
{
    int numbers[10]; 		// 假设我们想要存储10个整数
    int i;

    printf("请输入10个整数:\n");
    for (i = 0; i < 10; i++)
	 {
        scanf("%d", &numbers[i]);
    }
}

while (scanf("%d", &n) == EOF)		//未知个数
{
	......
}

以下是对scanf的理解

在C语言中,scanf函数从标准输入读取数据,并且会将读取的位置“记住”。这意味着,当scanf成功读取一个整数后,它会将输入缓冲区的“指针”移动到下一个整数的起始位置。因此,下一次调用scanf时,它会从上次停止的地方开始读取,即下一个整数。

练习题目


从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用变量 i 统计大于零的整数个数,用变量 j 统计小于零的整数个数。

输入格式:
在一行中输入n(n<20)个用空格间隔的整数,最后输入0结束输入,数据之间只能用1个空格间隔。

输出格式:
在两行中分别按照“i=正数个数”和“j=负数个数”的格式输出结果,个数均原样输出,没有列宽控制。

输入样例:
-8 -9 2 5 -1 -4 0

输出样例:

i=2

j=4

答案

#include <stdio.h>

int main() {
    int n, i = 0, j = 0; // 初始化计数器i和j为0

    printf("请输入整数(输入0结束):\n");
    // 使用循环读取输入的整数
    while (scanf("%d", &n) == 1) { // scanf返回值是读取的变量数量,这里是1表示成功读取一个整数
        if (n == 0) {
            break; // 如果输入为0,则结束循环
        }
        if (n > 0) {
            i++; // 如果输入的整数大于0,i加1
        } else if (n < 0) {
            j++; // 如果输入的整数小于0,j加1
        }
    }

    printf("i=%d\n", i);
    printf("j=%d\n", j);

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值