7-26 二维数组的遍历 (100 分) 编程读入一个整数N,输出如下N*N的方阵。

#include<stdio.h>
int main()
{
     int n,i,j;int a[20][20];
    scanf("%d",&n);
    
    a[0][0]=11;
    if(n>0&&n<20){
    for(i=0;i<n;i++)
    {
       for(j=0;j<n;j++)
       {
          
          {printf("%4d",a[i][j]);}
        a[i][j+1]=a[i][j]+1;
        a[i+1][j]=a[i][j]+10;
        }
        if(i<n-1)printf("\n");
    }}
        return 0;
}

 

代码虽然有点奇怪,比如a数组你都没有初始化数据,后面一顿循环要干什么呢

程序有什么问题吗?把问题说明一下。

int main()
{
    int n,i,j;
    scanf("%d",&n);
    int **p = new int*[n];
    for(i=0;i<n;i++)
    {
       p[i] = new int[n];
       for(j=0;j<n;j++)
          scanf("%d",p[i][j]);
    }
   for(i=0;i<n;i++)
   {
      for(j=0;j<n;j++)
          printf("%d ",p[i][j]);
      printf("\n");
   }
   for(i=0;i<n;i++)
   {
         delete []p[i];
   }
   delete []p;
}

 

代码及效果如下,如有帮助,请采纳,谢谢。

#include <stdio.h>
#include <string>
int main()
{
	int n = 0;
	while (1)
	{
		printf("请输入N的值:");
		scanf("%d",&n);
		if (n > 0 && n < 20)
		{
			break;
		}
	}
	
	int*a = new int[n*n];	
	memset(a,0,n*n);

	//假设a[0][0] = 2;
	a[0] = 2;
	for (int i  = 0; i < n; i++)
	{
		if(i > 0)
			a[i*n] = a[(i-1)*n] + 10;
		printf("%d ",a[i*n]);
		for (int j = 1; j < n;j++)
		{
			a[i*n+j] = a[i*n+j-1] + 1;
			printf("%d ",a[i*n+j]);
		}
		printf("\n");
	}


	delete[] a;
	a = 0;
	getchar();
	getchar();
	return 0;
}

输入:4

输出:

2    3     4     5

12   13  14  15

22   23  24  25

32   33  34  35

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632