解题思路:
1.看题目和例子,我们根据以往做题经验可知,要写一个二维数组。
2.输出有特殊限制,并且各个数之间有隐藏的规律。
3.我们的核心是分析例子,找出数字排列的规律,分析输出的要求。
注意事项:
审题要仔细,要求多组输入,想到while的用法;
二维数组的输出要用到双重for循环;
循环的嵌套书写需要一定的熟练度。
参考代码:
#include
int main()
{
int n;
int a[100][100] = { 0 };
//连续输入整数n
while (~scanf("%d", &n))
{
int i,j;
//序列是从1开始的
a[0][0] = 1;
/*观察第一行序列的规律知道,1 3 6 10 15
1和3差2, 3和6差3, 6和10差4, 10和15差5,
定义t去实现该规律*/
int t = 2;
//第一行
for (j = 1; j<n; j++)
{
a[0][j] = a[0][j - 1] + t;
t++;
}
/*其余行的规律都与上一行有关;
2=3-1,5=6-1;
都是各自上一后一位数减一。*/
for (i = 1; i < n; i++)
{
for (j = 0; j < n - i; j++)
{
a[i][j] = a[i - 1][j + 1] - 1;
}
}
//输出蛇形矩阵
for (i = 0; i < n; i++)
{
for (j = 0; j < n - i; j++)
{
printf("%d ", a[i][j]);
}
//别忘了输出完一行后要换行
printf("\n");
}
}
return 0;
}
0.0分
0 人评分