我需要打印出代码
Input the number of values: Input the values between 0 and 9 (separated by space):
your histogram:
0-3
1-2
2-0
etc.
但它看起来不像那样?帮助
#include<stdio.h>
void printStars(int n){
int i;
for(i = 0;i<n;i++){
printf("*");
}
printf("\n");
}
int main() {
int i,n = 10;
int input[100];
int hist[10] = {0};
printf("Input the amount of values: ");
scanf("%d",&n);
printf("Input the values between 0 and 9 (separated by space): ");
for(i = 0;i<n;i++){
scanf("%d",&input[i]);
}
for(i = 0;i<n;i++){
hist[input[i]]++;
}
printf("\n\nYour histogram: ");
for(i = 0;i<10;i++){
printf("%d - %d\n",i,hist[i]);
}
return 0;
}
答案 0 :(得分:0)
我假设printStars(int n)
方法应该替换每个数字的计数,
e.g。而不是0 - 3
,您会看到0 - * * *
如果是这种情况,您需要将第25行的for循环更改为:
for(i = 0; i < 10; i++){
printf("%d - ",i);
printStars(hist[i]);
}
另外,在第24行,你需要在printf的末尾添加一个额外的\ n来将直方图的0计数放在它自己的行上:printf("\n\nYour Histogram: \n");
不要忘记确保您的输入也在范围内,因为您永远不会检查int n
是否在input[]
的范围内。说到这个,为什么n被实例化为10,然后立即扫描输入而不使用n = 10
?
如果您在运行时未看到任何输出,请尝试立即输入输入。请求输入可能正在清除打印到的当前行。
printf("Input the amount of values: ");
scanf("%d",&n);
在这种情况下,由于printf末尾没有\ n并且立即调用scanf,输入请求可能正在清除输出行并请求输入。如果是您遇到的问题,在printf末尾添加\ n可能会更正此问题。
除此之外,似乎没有任何重大问题。
答案 1 :(得分:0)
您的代码正在运行。你得到什么格式,你期望什么格式?就个人而言,我有
0-3
1-2
2-0
格式