c语言,从一个数组中读取数据,并以直方图的形式显示信息。 测试输入:1 2 3 4 5 预期输出: * ** *** **** ***** 程序为:
时间: 2023-11-10 09:04:31 浏览: 169
C语言程序设计-编写程序。从键盘读入8个整数存入数组a中并输出这8个数据。和、最大值、最小值及平均值。正数之和、负数之和
5星 · 资源好评率100%
可以使用c语言中的数组和循环来读取数据并生成直方图。首先,需要将输入的数据存储到数组中,然后确定直方图的bin数和每个bin的范围。接着,遍历数组中的每个元素,将其分配到对应的bin中,并统计每个bin中元素的个数。最后,按照每个bin中元素的个数,输出直方图。
以下是一个简单的c语言程序实现上述功能:
```
#include <stdio.h>
#define MAX_BINS 10
int main() {
int data[MAX_BINS];
int bin_counts[MAX_BINS] = {0};
int num_bins = MAX_BINS;
int min_val = 0, max_val = 0;
// Read data from input
for (int i = 0; i < num_bins; i++) {
scanf("%d", &data[i]);
if (i == 0 || data[i] < min_val) {
min_val = data[i];
}
if (i == 0 || data[i] > max_val) {
max_val = data[i];
}
}
// Determine bin range and count elements in each bin
float bin_width = (float)(max_val - min_val) / num_bins;
for (int i = 0; i < num_bins; i++) {
int bin_index = (int)((data[i] - min_val) / bin_width);
bin_counts[bin_index]++;
}
// Print histogram
for (int i = 0; i < num_bins; i++) {
printf("%d: ", i);
for (int j = 0; j < bin_counts[i]; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
```
阅读全文