大一,帮看看哪里错了,思路是输入二维数组的每个元素然后通过swith的分支结构判断,最后输出非零的灰度级及其数字。


大一,帮看看哪里错了,思路是输入二维数组的每个元素然后通过swith的分支结构判断,最后输出非零的灰度级及其数字。


关注【以下回答由 GPT 生成】
#include <stdio.h>
void histogram(int arr[][10], int rows, int cols) {
int count[10] = {0}; // 初始化每个灰度级别的计数为0
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
switch(arr[i][j]) {
case 0:
// do nothing for 0
break;
case 1:
count[1]++;
break;
case 2:
count[2]++;
break;
case 3:
count[3]++;
break;
case 4:
count[4]++;
break;
case 5:
count[5]++;
break;
case 6:
count[6]++;
break;
case 7:
count[7]++;
break;
case 8:
count[8]++;
break;
case 9:
count[9]++;
break;
default:
printf("Invalid gray level!\n");
}
}
}
for (int i = 1; i < 10; i++) {
printf("Gray level %d: %d\n", i, count[i]);
}
}
int main() {
int arr[5][10] = {{0, 0, 1, 1, 2, 3, 4, 5, 6, 7},
{1, 8, 9, 6, 5, 4, 3, 2, 1, 0},
{2, 3, 4, 5, 6, 7, 8, 9, 1, 2},
{3, 4, 5, 6, 7, 8, 9, 1, 2, 3},
{4, 5, 6, 7, 8, 9, 1, 2, 3, 4}};
histogram(arr, 5, 10);
return 0;
}
【相关推荐】