需要为项目完成一个不完整的直方图。
#include <stdio.h>
/**
* Prints a histogram to the screen using horizontal bar chart.
* Parameters:
* list - a list of integers
* n - the number of values in the list
*/
void printHistogram ( int *hist, int n );
/**
* This program requests data from the user and then
* computes and prints a histogram. You may assume that
* the data values entered are in the range of 0 to 9.
*/
int main ( void )
{
int i, n;
// Data entry
//
printf ("How many values in your data set? ");
scanf ("%d", &n);
int list[n];
for (i=0; i < n; i++) {
printf ("Enter a value: ");
scanf ("%d", &list[i]);
}
// Processing data to compute histogram
int hist[10];
// Printing histogram
printHistogram ( hist, 10);
return 0;
}
void printHistogram ( int *list, int n )
{
int i, j;
for (i=0; i < n; i++) {
printf ("[%d] ", i);
for (j = 0; j < list[i]; j++)
printf ("*");
printf ("\n");
}
}
答案 0 :(得分:1)
您提供的实际解决方案信息太少,但无论如何
所以,我假设您要打印一个直方图,其中包含1-9的整数出现次数(至少,这是我所理解的)。
一种可能的方法是创建一个ingeter数组,该数组将保留每个整数的出现次数。它显然有10个项目。当您到达输入时,对于您遇到的每个整数,您将增加数组中的相应项。请注意,您不需要在数组中搜索每个整数。
如果你想计算单词字符串的出现次数,这有点复杂,因为它需要使用结构,但它基于相同的想法。