首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的二维数组中的数字频率没有正确输出

我的二维数组中的数字频率没有正确输出
EN

Stack Overflow用户
提问于 2018-10-17 03:17:39
回答 1查看 55关注 0票数 0

例如,我的目标是使数组的大小为2x6,并输入第1行的值(0、1、2、3、4、5)和第2行的值(0、1、6、7、8、9),然后输出:数字0发生2次,数字1发生2次,数字2次,数字2发生1次等等。下面是我的代码:

代码语言:javascript
复制
#include <stdio.h>

int main(void)
{
 int row, col, N, M, count, row1, col1;

 printf("This program counts occurrences of digits 0 through 9 in an NxM array.\n");
 printf("Enter the size of the array (Row Column): ");
 scanf("%d %d", &N, &M);

 int digits[N][M], freq[N][M];

 for (row = 0; row < N; row++){ 
  printf("Enter row %d: ", row);
  for (col = 0; col < M; col++){
   scanf("%d", &digits[row][col]);
  }
 } 

 freq[row][col] = -1;

 for (row = 0; row < N; row++){
  count = 1;
  for (row1 = row + 1; row1 < N; row1++){
   for (col = 0; col < M; col++){
    for (col1 = col + 1; col1 < M; col1++){
     if (digits[row][col] == digits[row1][col1]){
      count++;
      freq[row1][col1] = 0;
     }
    }
    if (freq[row][col] != 0){
     freq[row][col] = count;
    }
   } 
  } 
 }

 printf("Total counts for each digit:\n");
 for (row = 0; row < N; row++){
  for (col = 0; col < M; col++){
   if (freq[row][col] != 0){
    printf("Digit %d occurs %d times\n", digits[row][col], freq[row][col]);
   }
  } 
 } 

 return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-17 03:39:43

我认为第二个循环没有计算您所期望的,为什么不尝试这样的方法:

代码语言:javascript
复制
#include <stdio.h>

int main(void)
{
 int row, col, digit, N, M, currentValue;

 printf("This program counts occurrences of digits 0 through 9 in an NxM array.\n");
 printf("Enter the size of the array (Row Column): ");
 scanf("%d %d", &N, &M);

 int digits[N][M], freq[10] = { 0 };

 for (row = 0; row < N; row++){ 
  printf("Enter row %d: ", row);
  for (col = 0; col < M; col++){
   scanf("%d", &currentValue);
   digits[row][col] = currentValue;
   if (currentValue >= 0 && currentValue <=9) {
     freq[currentValue]++;
   }
  }
 } 

 printf("Total counts for each digit:\n");
 for (digit = 0; digit < 10; digit++){
   if (freq[digit] != 0){
    printf("Digit %d occurs %d times\n", digit, freq[digit]);
   }
 } 

 return 0;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52846809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档