这是一个程序,用于查找数组中元素的均值、中值和众数,然后从中制作直方图。
但我的问题只是在星星数和打印星
#include<stdio.h>
int main()
{
int sample[50] = {4,3,5,5,1,5,5,5,4,3,5,3,3,5,5,5,2,5,5,5,5,4,3,5,5,2,5,2,5,4,3,5,3,3,5,5,5,5,5,5,3,5,4,3,5,3,3,5,5,5,};
int i;
int j;
int f1;
int f2;
int f3;
int f4;
int f5;
int temp;
int sum = 0;
int count = 0;
int median;
float mean;
for(i = 0; i < count; i++)
{
if(sample[i] == 1)
{
f1++;
}
else if(sample[i] == 2)
{
f2++;
}
else if(sample[i] == 3)
{
f3++;
}
else if(sample[i] == 4)
{
f4++;
}
else if(sample[i] == 5)
{
f5++;
}
}
for(i = 0; i < 5; i++)
{
printf("\t%d\t", i + 1);
if(i == 0)
{
printf(" %d\t", f1);
for(j = 0; j < f1; j++)
{
printf("*");
}
}
else if(i == 1)
{
printf(" %d\t", f2);
for(j = 0; j < f2; j++)
{
printf("*");
}
}
else if(i == 2)
{
printf(" %d\t", f3);
for(j = 0; j < f3; j++)
{
printf("*");
}
}
else if(i == 3)
{
printf(" %d\t", f4);
for(j = 0; j < f4; j++)
{
printf("*");
}
}
else if(i == 4)
{
printf(" %d\t", f5);
for(j = 0; j < f5; j++);
{
printf("*");
}
}
printf("\n");
}
return 0;
}
但是,
看起来循环发生是因为数字4的频率是4205314,所以星星循环直到那个数字,但是我不知道为什么频率会那么高
2条答案
按热度按时间agxfikkp1#
更简单、更短的方式:
输出
utugiqy62#
你的大多数变量都是未初始化的,很可能是完全随机的数字。然后你在你的for循环中引用这些随机数字,这就是为什么它们不会像你缩进它们那样表现。
您需要将变量初始化为期望的起始值,例如: