为什么结果会输出两次呢,我只想输出一次。

我觉得我输出结果的那个程序应该写的是只输出一次,可它输出了两次相同的结果,为什么呢?

img

img

可能是for i 循环的大括号将下面的双层循环包住了

先把相同嵌套的循环里面的变量名都区分一下,这看得很不清楚

“该回答引用ChatGPT”
可参考下面的方法,请测试代码的可行性:
这是因为在代码末尾有两个main函数,一个在main0前面,另一个在main0后面。在代码中,每个main函数的代码都会被执行一次,因此出现了两次输出。只需保留一个main函数,并删除另一个即可解决问题。

#include<stdio.h>

int main()
{
    int n, m;
    scanf("%d%d", &n, &m);
    int a[110][110];
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            scanf("%d", &a[i][j]);
        }
    }
    for (int i = 1; i < n - 1; i++)
    {
        for (int j = 1; j < m - 1; j++)
        {
            a[i][j] = (a[i][j] + a[i - 1][j] + a[i][j - 1] + a[i + 1][j] + a[i][j + 1]) / 5;
            if ((a[i][j] + a[i - 1][j] + a[i][j - 1] + a[i + 1][j] + a[i][j + 1]) % 5 > 4)
                a[i][j] += 1;
        }
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }
    return 0;
}


输出的循环放错地方了,你放进循环里面了

我怎么感觉是编译器差异导致的呢🤣🤣🤣
我使用Microsoft visual c++ 2010学习版 输出只有一次😅😅😅

img

而且输出的两个for循环最好不要放在遍历的循环中。