目录
前言:
开新专栏了,讲解100道基础语法编程题
用c语言讲解
目的是复习c语言中的基础语法,为单片机中的c语言代码分析做铺垫
专栏链接:
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;
}


592

被折叠的 条评论
为什么被折叠?



