这周我学习到了数组的使用。
下面是我的一个实践例子(杭电2008题):
在这道题里,数组的问题不大,主要还是输出的问题,首先要清除统计次数,还有就是对n等于0时的处理。
我刚开始时是在后面加一个n等于0时的情况,在我电脑里跑出来了,但提交的时候超时了。后来将n=0的情
况写在循环里就好了。
题目:
统计给定的n个数中,负数、零和正数的个数。
Input
输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。
Output
对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。
我的代码:
#include <stdio.h>
#define j 100
main()
{
double m[j];
int n,i,a=0,b=0,c=0;
while(scanf("%d",&n)!=EOF&&n)//设置循环输入组;当n为0时,结束程序。
{
for(i=0;i<n;i++)
{
scanf("%lf", &m[i]);//给数组里的元素逐个赋值 ,赋值次数为n次
}
for(i=0;i<n;i++)//判断数组里负数,零,正数的个数
{
if(m[i]<0)
{a++;}
else if(m[i]==0)
{b++;}
else {c++;}
}
printf("%d %d %d\n",a,b,c);
a=0;
b=0;
c=0;//将统计次数归0,以免影响下面数组的值。
}
return 0;
}
小结:1.定义数组时,最好使用宏定义,减少出错;
2.给数组里的元素赋值时,要逐个赋值;
3.在循环里一定要在输出后,清除数据,避免影响后面数组。