#include<stdio.h>
int main()
{
float p[100];
int i, m, n, k, l;
m = 0; k = 0; l = 0;
scanf_s("%d", &n);
printf("请输入%d个数:", n);
for (i = 0; i < n; i++)
{
scanf_s("%f", &p[i]);
if (p[i]>0)
m++;
else if (p[i] < 0)
k++;
else if (p[i] == 0)
l++;
}
printf("正数个数为:%d\n", m);
printf("负数个数为:%d\n", k);
printf("0个数为:%d\n", l);
return 0;
}
方法2(动态内存分配法)
#include<stdio.h>
#include<stdlib.h>
int main()
{
float *p;
p=(float *)malloc(100*sizeof(float));
int i, m, n, k, l;
m = 0; k = 0; l = 0;
scanf("%d",&n);
printf("请输入%d个数:",n);
for (i = 0; i < n; i++)
{
scanf("%f",p+i);
if(p[i]>0)
m++;
else if (p[i] < 0)
k++;
else if (p[i] == 0)
l++;
}
printf("正数个数为:%d\n", m);
printf("负数个数为:%d\n", k);
printf("0个数为:%d\n", l);
return 0;
}
总结:第二种方法较第一种方法优化 第一种方法浪费存储空间