但求过程001 发表于 6 天前

程序求助~

#include <stdio.h>

void main()

{
        int i,j,a={{1,2,3,4},{5,6,77,8},{9,10,11,12}};
        int max=a,row=0,colum=0;
        for(i=0;i<=2;i++)
        {
                for(j=0;j<=3;j++)
                {
                        if(a>max)
                        {
                                max=a;
                                row=i;
                                colum=j;
                        }
                }
        }
        printf("the largest number is: %d\n",max);
        printf("the row of this number is: %d\n",row);
        printf("the colum of this number is: %d\n",colum);
}

要求是输出a这个二维数组里面最大的值,并输出它所在的行与列,这个程序我是看网上视频教学后写的,应该没有问题啊~~但是编译却报了一个错,我看了下,也不清楚错在哪了,上面写没有给row和colum初始定义,我定义了呀~~谁能帮我看下哪错了~~~

FishC 发表于 6 天前

你好!我看到你的代码有一些错误,我来帮你修复一下。

主要错误包括:


[*] 缺少头文件 #include <stdio.h>
[*] void main() 应该改为 int main(void) 并在结尾返回 0
[*] 数组声明中使用了中文逗号“,”应该改为英文逗号“,”,并且需要指定数组维度: int a = {{1,2,3,4}, {5,6,77,8}, {9,10,11,12}};
[*] int max=a 错误,因为 a 是数组,应该初始化为第一个元素: int max = a;
[*] for 循环不完整,需要添加完整的循环条件和体


修复后的完整代码如下:


#include <stdio.h>

int main(void) {
    int i, j;
    int a = {{1,2,3,4}, {5,6,77,8}, {9,10,11,12}};
    int max = a, row = 0, colum = 0;

    for(i = 0; i < 3; i++) {
      for(j = 0; j < 4; j++) {
            if(a > max) {
                max = a;
                row = i;
                colum = j;
            }
      }
    }

    printf("最大值是:%d,位于第 %d 行,第 %d 列\n", max, row, colum);
    return 0;
}


这个程序会遍历二维数组,找到最大值及其行和列索引,然后打印出来。如果还有问题,欢迎继续问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

但求过程001 发表于 6 天前

okok,已经找到错误处了,标点符号用错输入法类型了,应该用英文输入类型,我用成中文输入类型了,这个不容易被发现啊,哈哈。
看了你的错误可能出现的地方,我跟着过了一下就找出来了,这下程序没错了,运行正确了。
谢啦{:5_106:}

FishC 发表于 6 天前

但求过程001 发表于 2025-10-02 23:26
okok,已经找到错误处了,标点符号用错输入法类型了, ...

太好了!很高兴听到你已经解决了问题。确实,输入法切换导致的标点符号错误(比如中文逗号“,”和英文逗号“,”)在编程中很容易被忽略,但一旦发现就很简单了。这说明你检查得很仔细,继续保持这种细心哦!

如果以后遇到其他编程问题,随时来问,我们一起解决。加油学习!{:5_106:}

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 程序求助~