gpt4 book ai didi

c - 需要编写一个程序,要求用户填写一个二维数组,然后检查在这两行中输入了 0 到 9 之间的数字多少次

转载 作者:行者123 更新时间:2023-11-30 16:40:13 25 4
gpt4 key购买 nike

**这是一个已删除的问题,但我重新制作了它,以便该社区更容易理解我的问题

这是我的代码:

#include <stdio.h>
#include <stdbool.h>


int main()
{
int row;
int col;
int x;
int y;
int i = 9;
int count[i];


printf("Enter the size of your array: ");
scanf("%d %d", &row, &col);
int arr[row][col];

//This will read the rows
for (int x = 0; x < row; ++x) {
for (int y = 0; y < col; ++y) {
printf("Enter row %d: ", x);
scanf("%d", &arr[x][y]);
}
}

//This will create a count for the rows
for (x = 0; x < row; ++x) {
for (y = 0; y < col; ++y) {
++count[arr[x][y]];
}
}

//This will count if digits repeat in the rows and print it
printf("\nTotal count for each digit:\n");
for (int j = 0; j < 10; ++j) {
printf("Digit %d occurs %d time%s\n", j, count[j], count[j] > 1 ? "s" : "");
}
return 0;
}

代码注释

我设置 i = 9,因为用户应输入的最大数字是 9在“这将读取行”上应该有两个 printf“输入第 0 行”“输入第 1 行”我将如何制作它,以便用户输入一组数字供用户在两行中输入。当我编译时,它只是一直显示“输入第 0 行:输入第 0 行:输入第 0 行”。程序应该找出 0 到 9 之间的数字被输入了多少次。最终结果应该是这样的

Enter the size of your array: 2 6

Enter row 0: 0 1 2 3 4 5

Enter row 1: 0 1 6 7 8 9

Total count for each digit:

Digit 0 occurs 2 times

Digit 1 occurs 2 times

Digit 2 occurs 1 time

Digit 3 occurs 1 time

等等。这将一直持续下去,直到程序到达“数字 9 出现多次。

当我在没有 printf 的情况下编译时,它会运行 3 行,而它应该是 2 行,并且编译器给出的大多数数字除了 2 位数字外都是奇怪的

例如数字 1 出现 3 次

数字 2 出现 -343589435 次

感谢您的帮助!

最佳答案

有十个数字0-9。所以数组count应该有十个元素。数组还需要初始化。

要么使用常量表达式指定大小的数组,然后在声明中对其进行初始化

#define N 10

//...

int count[N] = { 0 };

或者使用可变长度数组并使用函数 memset 对其进行初始化在 header <string.h> 中声明例如

#include <string.h>

//...

int i = 10;
int count[i];

memset( count, 0, i * sizeof( int ) );

否则,如果数组未初始化,它将具有不确定的值。

关于c - 需要编写一个程序,要求用户填写一个二维数组,然后检查在这两行中输入了 0 到 9 之间的数字多少次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46761095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com