定义一个4*3的二维数组,从键盘输入各元素值,按行列格式输出此数组

定义一个4*3的二维数组,从键盘输入各元素值,按行列格式输出此数组.
2题
改错.程序功能为:输入两个正整数m和n(m和n应≥1且≤6),然后输入该m行n列二维数组a中的元素,分别求出各行元素之和,并输出。
有错的源程序
#include <stdio.h>
int main( )
{
int a[6][6], i, j, m, n, sum;
printf("input m, n:");
scanf("%d%d",&m,&n);
printf("input array:\n");
for(i=0;i<m;i++) //断点1
for(j=0;i<n;j++)
scanf("%d",&a[i][j]);
sum=0; //断点2
for(i=0;i<m;i++){
for(j=0;j<n;j++)
sum=sum+a[i][j];
printf("sum of row %d is %d\n",i,sum); //断点3
}
return 0;

#include<iostream>

usingnamespacestd;

intmain()

inta[4][3];

intMax=0;//赋值之前需要先置为0

cout<<"pleaseinput12numbers:"<<endl;

for(inti=0;i<4;i++)//嵌套循环,用于向二维数组中输入内容

for(intj=0;j<3;j++)

cin>>a[i][j];

for(intm=0;m<4;m++)//用于判断数组中的最大元素是多少

for(intn=0;n<3;n++)

if(a[m][n]>=Max)

Max=a[m][n];

cout<<"thebiggestnumberis"<<Max<<endl;

for(intp=0;p<4;p++)//用于判断最大元素所在的位置

for(intq=0;q<3;q++)

if(Max==a[p][q])

cout<<"它在第"<<p+1<<"行,"<<"第"<<q+1<<"列"<<endl;

return0;

扩展资料:

main函数,经常带有参数argc,argv,如下:intmain(intargc,char**argv)intmain(intargc,char*argv[])这两个参数的作用是;

argc是指命令行输入参数的个数,argv存储了所有的命令行参数。假如你的程序是hello.exe,如果在命令行运行该程序,(首先应该在命令行下用cd命令进入到hello.exe文件所在目录)

运行命令为:hello.exeShiqiYu那么,argc的值是3,argv[0]是"hello.exe",argv[1]是"Shiqi",argv[2]是"Yu"。

下面的程序演示argc和argv的使用:#include<stdio.h>intmain(intargc,char**argv){inti;for(i=0;i<argc;i++)printf("Argument%dis%s.\n",i,argv[i]);return0;}

假如上述代码编译为hello.exe,那么运行hello.exeabcde将得到Argument0ishello.exe.Argument1isa.Argument2isb.Argument3isc.Argument4isd.Argument5ise.

运行hello.exelena.jpg将得到Argument0ishello.exe.Argument1islena.jpg.

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-05

第一个

#include <stdio.h>
int main( )
{
    int a[4][3], i, j;
    printf("input array:\n");
    for(i=0;i<4;i++)   
        for(j=0;j<3;j++)
    scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
    return 0;
}

第二个

#include <stdio.h>
int main( )
{
    int a[6][6], i, j, m, n, sum;
    printf("input m, n:");
    scanf("%d%d",&m,&n);
    printf("input array:\n");
    for(i=0;i<m;i++)    //断点1
        for(j=0;j<n;j++)//修改i<n为j<n
    scanf("%d",&a[i][j]);
    for(i=0;i<m;i++){  
sum=0;   //断点2  //将sum=0移到循环内
       for(j=0;j<n;j++)
         sum=sum+a[i][j];
       printf("sum of row %d is %d\n",i+1,sum);   //断点3 //这里不算有什么问题,只不过是第0行开始,既然加了断点,那么改成从1计数好了
    }   
    return 0;
}

本回答被网友采纳