weixin_43573137 2018-11-17 15:53 采纳率: 0%
浏览 640

无法输出矩阵,在赋值时只能赋一个值,请问错在哪里了?

#include
int main()
{
void input_matrix1();
void input_matrix2();
input_matrix1();
input_matrix2();
}
void input_matrix1()
{
int r,c,i,j;
printf("请输入矩阵的行数r:\n");
scanf("r=%d",&r);
printf("请输入矩阵的列数c:\n");
scanf("c=%d",&c);
int a[r][c];
printf("请输入第一个矩阵a:\n");
for(i=1; i<=r; i++)
{
for(j=1; j<=c; j++)
{
scanf("%d",&a[i][j]);
}
}
printf("您输入的矩阵为a=\n");
for(i=1; i<=r; i++)
{
for(j=1; j<=c; j++)
{
printf("%d ",&a[i][j]);
}
if(j>c);
printf("\n");
return;
}
}

void input_matrix2()

{
int r1,c1,i1,j1;
printf("请输入矩阵的行数r1:\n");
scanf("r1=%d",&r1);
printf("请输入矩阵的列数c1:\n");
scanf("c1=%d",&c1);
int b[r1][c1];
printf("请输入第二个矩阵b:\n");
for(i1=1; i1<=r1; i1++)
{
for(j1=1; j1<=c1; j1++)
{
scanf("%d",&b[i1][j1]);
}
}
printf("您输入的矩阵为b=\n");
for(i1=1; i1<=r1; i1++)
{
for(j1=1; j1<=c1; j1++)
{
printf("%d ",&b[i1][j1]);
}
if(j1>c1);
printf("\n");
}
return;
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2018-11-17 16:16
    关注
     你的基础知识太差!
    void input_matrix1()
    {
    int r,c,i,j;
    printf("请输入矩阵的行数r:\n");
    scanf("%d",&r); //scanf不是print,不要加多余的东西
    printf("请输入矩阵的列数c:\n");
    scanf("%d",&c);
    int a[r][c];
    printf("请输入第一个矩阵a:\n");
    fflush(stdin);
    for(i=0; i<r; i++)  //数组下标从0开始
    {
    for(j=0; j<c; j++) 
    {
    scanf("%d", &a[i][j]);
    }
    }
    printf("您输入的矩阵为a=\n");
    for(i=0; i<r; i++) 
    {
    for(j=0; j<c; j++) 
    {
    printf("%d ",a[i][j]); //printf不需要取地址符号
    }
    if(j==c) //这里不需要分号
    printf("\n"); //这里不要return
    }
    }
    

    至于函数是干嘛的,你更是完全不懂。函数是为了代码重复使用用的,你两个代码完全一样(除了变量名),应该合并成一个函数,不同的地方提取为参数。然而你对函数完全一窍不通。

    图片说明

    评论

报告相同问题?