c语言蛇形矩阵题..
问题描述:
描述
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
格式
输入格式
本题有多组数据,每组数据由一个正整数N组成。(N不大于100)
输出格式
对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。
样例
样例输入
5
样例输出
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
答
#include<stdio.h>
int main()
{
int i,j,n,k,a=1,b=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
b=a;
a=a+i;
k=i+1;
for(j=i;j<=n;j++)
{
if(j==n){
printf("%d",b);
}else{
printf("%d ",b);
}
b+=k;
k++;
}
if(i<n){
printf("\n");
}
}
return 0;
}
答
#include <stdio.h>
int main()
{
int a[100][100]={0};
int n,i=0,j=0,r=1;
scanf("%d",&n);
for(int k=1;k<=n*(n+1)/2;k++)
{
a[i][j] = k;
i--;
j++;
if(i<0)
{
i=r++;
j=0;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
if(a[i][j] != 0)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
答
int main () {
int a[100][100];
int n;
scanf("%d", n);
int num = 1;
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
a[i-j][j] = num++;
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i; j++) {
printf("%d", a[i][j]);
if (j != n - i - 1) {
printf(" ");
}
else {
printf("\n");
}
}
}
}