
如题
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=0,j,k,n,t,a[30];//最多30组数据,如果更多组,把30改成更大的数
while(scanf("%d",&n)!=EOF) //读取多组输入数据存放在数组a中
a[i++] = n;
n = i; //n记录组数
for (k = 0;k<n;k++)//遍历所有组
{
for (i=1;i<=a[k];i++) //对每一组数据,输出a[k]*a[k]的矩阵
{
t = 1; //没一行都是从1开始
for(j=1;j<=a[k];j++)
{
if(j<i) //列数小于行数的时候,显示数字,并将数字+1
{
printf("%3d",t);
t++;
}else
printf("%3d",t); //列数大于行数的时候,直接显示数字,数字不再+1
}
printf("\n"); //每行结束后输出换行符
}
}
return 0;
}