首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

动态分配的二维数组以矩阵方式输出

2014-06-07 
动态分配的二维数组以矩阵形式输出麻烦帮我看下为什么这样不能以矩阵形式输出啊/*#include #incl

动态分配的二维数组以矩阵形式输出
麻烦帮我看下为什么这样不能以矩阵形式输出啊

/*#include <stdio.h>
#include <stdlib.h>
void main()
{
int n,i=0,j=0;
int **p;
printf("?????????:");
scanf("%d", &n);
p = (int**)calloc(n, sizeof(int*));

 
for (i = 0; i < n; i++)
{
    p[i] = (int*)calloc(n + 1, sizeof(int)); 

         
    for (j = 0; j < n; j++) 
    {
        scanf("%d", &p[i][j]); 
         
        p[i][n] += p[i][j]; 
    }
}
 
for (i = 0; i < n; i++)
{
    for (j = 0; j < n+1 ; j++)
    {
        printf("%d ", p[i][j]);
    }
}
}
C
[解决办法]

for (i = 0; i < n; i++) 
{
     for (j = 0; j < n+1 ; j++)
     {
         printf("%d ", p[i][j]);
     }
     printf("\n");   //这里必须要个的换行符呢!
}  // 还有每次输入数据的时候,后面加个getchar()函数,吃掉每次输入的回车符!

[解决办法]

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
int n,i=0,j=0;
int **p;
printf("?????????:");
scanf("%d", &n);
p = (int**)calloc(n, sizeof(int*));
 
  
for (i = 0; i < n; i++)
{
    p[i] = (int*)calloc(n + 1, sizeof(int)); 
 
          
    for (j = 0; j < n; j++) 
    {
        scanf("%d", &p[i][j]); 
          
        p[i][n] += p[i][j]; 
    }
}
  
for (i = 0; i < n; i++)
{
    for (j = 0; j < n; j++)
    {
        printf("%d ", p[i][j]);
    }
    printf("\n");
}

return 0;
}



引用:
麻烦帮我看下为什么这样不能以矩阵形式输出啊
/*#include <stdio.h>
#include <stdlib.h>
void main()
{
int n,i=0,j=0;
int **p;
printf("?????????:");
scanf("%d", &n);
p = (int**)calloc(n, sizeof(int*));

 
for (i = 0; i < n; i++)
{
    p[i] = (int*)calloc(n + 1, sizeof(int)); 

         
    for (j = 0; j < n; j++) 
    {
        scanf("%d", &p[i][j]); 
         
        p[i][n] += p[i][j]; 
    }
}
 
for (i = 0; i < n; i++)
{
    for (j = 0; j < n+1 ; j++)
    {
        printf("%d ", p[i][j]);
    }
}
}

[解决办法]
看到上边的人已经恢复得很完全了,要形成矩阵形式,至少要有相应的换行操作,还有,for (j = 0; j < n+1 ; j++),j的范围超了,竟然不发生越界错误。。。挺神奇的
[解决办法]


引用:
看到上边的人已经恢复得很完全了,要形成矩阵形式,至少要有相应的换行操作,还有,for (j = 0; j < n+1 ; j++),j的范围超了,竟然不发生越界错误。。。挺神奇的

他第二次分配内存空间的时候也有+1操作,所以不会

热点排行