解题思路:(1)观察蛇形矩阵存在两个规律:①行和列都存在一个递增关系;②每行首数据可以用一个递增值加上一个值得到。
(2)可以先把每行首元素输出,在处理首元素后面的数据,第一行首元素处理则是首元素+2+递增变量来处理;第二行同理,只不过2是一个递增变量,也 就是加3再加递增变量;
(3)第一层循环用一个变量递减,用来刷新每行元素个数判断
(4)外层循环处理行,内存循环处理列;内层循环用一个if判断,输出\n来换行
注意事项:①内层变量记得清零,在进循环处理
②内存循环从每行第二个数开始
参考代码:
#include <stdio.h>
int main(void)
{
int x,y,N; //x-列控制;y-行控制;N-输入数据
int printf_num,first_num=1; //printf_num-输出的单个数据;first_num-每行的首个数据
scanf("%d",&N);
int N_flag=N; //N_falg-用来刷新每行减少输出的数
int add_flag=0; //行递增
int flag; //内层循环,递增变量,控制每次加的数值
int z=2; //第一行,第一个到第二个元素变化的差值,行列转换规律都需要用它处理
for(y=1;y<=N;y++)
{
first_num+=add_flag;
printf_num=first_num;
flag=0;
printf("%d ",first_num);
for(x=2;x<=N_flag;x++)
{
printf_num+=z+flag;
printf("%d", printf_num);
if (x==N_flag)
{
printf("\n");
}
else {
printf(" ");
}
flag++;
}
add_flag++;
N_flag--;
z++;
}
}
0.0分
1 人评分
C二级辅导-求偶数和 (C++代码)浏览:788 |
IP判断 (C语言代码)浏览:920 |
C语言训练-字符串正反连接 (C语言代码)浏览:689 |
C语言训练-计算1~N之间所有奇数之和 (C语言代码)浏览:720 |
简单的a+b (C语言代码)浏览:643 |
简单的for循环浏览:1408 |
【魔板】 (C++代码)(时间超限,希望会的帮我改正一下)浏览:738 |
【蟠桃记】 (C语言代码)浏览:1021 |
The 3n + 1 problem (C语言代码)浏览:548 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:342 |