请看看这个程序哪里有错?

#include<stdio.h>
#define ROW 3
#define COL 4
int main(){
int i=0,j=0;
int a[ROW][COL],b=0,row[b],max;
for(i=0;i<ROW;i++){
for(j=0;j<COL;j++){
scanf("%d",&a[i][j]);
}}
for(i=0;i<ROW;i++){
max=a[i][0];
for(j=0;j<COL;j++)
if(a[i][j]>max)
max=a[i][j];
row[b]=max;}
for(b=0;b<ROW;b++){
printf("%d",row[b]);}
return 0;

}

VS编译器不支持变长数组的定义,你这里的定义有问题。
定义的时候数组里面必须是一个数字,但是使用的时候可以是参数

img


代码更改如下

#include<stdio.h>
#define ROW 3
#define COL 4
int main() {
    int i = 0, j = 0;
    int a[ROW][COL],b=0, row[ROW], max;
    for (i = 0; i < ROW; i++) 
    {
        for (j = 0; j < COL; j++) 
        {
            scanf("%d", &a[i][j]);
        }
    }
    for (i = 0; i < ROW; i++) 
    {
        max = a[i][0];
        for (j = 0; j < COL; j++)
        {
            if (a[i][j] > max)
                max = a[i][j];
        }
        row[i] = max;
    }
    for (b = 0; b < ROW; b++) 
    {
        printf("%d ", row[b]);
    }
    return 0;

}

如果对你有帮助,还请点个采纳,万分感谢!

#include <stdio.h>

#define ROW 3
#define COL 4

int main()
{
    int i = 0, j = 0;
    int a[ROW][COL], row[ROW], max;
    for (i = 0; i < ROW; i++)
    {
        for (j = 0; j < COL; j++)
            scanf("%d", &a[i][j]);
    }
    for (i = 0; i < ROW; i++)
    {
        max = a[i][0];
        for (j = 1; j < COL; j++)
            if (a[i][j] > max)
                max = a[i][j];
        row[i] = max;
    }
    for (i = 0; i < ROW; i++)
        printf("%d\n", row[i]);
    return 0;
}