[编程题]09、数值统计

目录

前言:

1、题目展示:

2、问题分析:

 3、最终代码展示:


前言:

开新专栏了,讲解100道基础语法编程题

用c语言讲解

目的是复习c语言中的基础语法,为单片机中的c语言代码分析做铺垫

专栏链接:

c语言基础语法编程题_1zero10的博客-CSDN博客

1、题目展示:

2、问题分析:

1、首先解决输入问题,输入多组数据,每组占一行,且每行第一个数据代表后面有几个实数

因此又是我们熟悉的分组输入

大框架是

while (scanf("%d", &n) == 1){

}

只要每组第一个数输入了,就执行大括号内的代码

这里有一个前提条件,题目说n>100以及n=0不显示,其实也包括n<0,因为不可能有负数个数

所以要执行之后的数据的输入的前提条件是

while (scanf("%d", &n) == 1) {
        if (n > 0 && n < 100) {
       
        }
}

在if语句里再执行,第二次输入的操作,第二次输入的数的个数取决于n,n为几,n后面就跟着几个实数

那么就利用for循环循环n次,输入n个整数

同时我们要考虑开始计数了,有几个负数,几个0,几个正数

利用if判断语句

先初始化a=0,b=0,c=0;//a为负数的个数,b为0的个数,c为整数的个数

满足负数条件

就在a之后加一,利用a=a+1;下一次循环把之前统计的也加上

满足0

就在b后面加一,利用b=b+1;

满足正数条件

就在c后面加一,利用c=c+1;

代码展示:

        while (scanf("%d", &n) == 1) {
                if (n > 0 && n < 100) {
                        int a = 0, b = 0, c = 0;
                        for (int i = 0;i < n;++i) {
                                double x;
                                scanf("%lf", &x);
                                if (x < 0) {
                                        a = a + 1;
                                }
                                else if (x == 0) {
                                        b = b + 1;
                                }
                                else {
                                        c = c + 1;
                                }
                        }
                }
        }

 3、最终代码展示:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
        int n;
        while (scanf("%d", &n) == 1) {
                if (n > 0 && n < 100) {
                        int a = 0, b = 0, c = 0;
                        for (int i = 0;i < n;++i) {
                                double x;
                                scanf("%lf", &x);
                                if (x < 0) {
                                        a = a + 1;
                                }
                                else if (x == 0) {
                                        b = b + 1;
                                }
                                else {
                                        c = c + 1;
                                }
                        }
                        printf("%d %d %d\n", a, b, c);
                }
        }
        return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值