原题链接:蛇行矩阵
解题思路:1.先对数组内100*100个数赋值,之后需要多少就输出多少
2.先对a[0][0]=1赋值,之后初始化第0列所有数,之后再将其他的通过循环一起遍历赋值
3.第一列利用变量p=1进行下一位计算,第0列所有行之间数关系为,其中p每次赋值后要加1:
a[i][0]=a[i-1][0]+p; p++;
4.其余赋值同理,利用temp帮助同行不同列的数目赋值,需要注意的是,每次换行赋值temp都要重新初始化,这里借用s在每行赋值完毕后加1实现。
// 将所有数进行赋值 int s=2; int temp; for(int i=0;i<100;i++){ temp=s; for(int j=1;j<100;j++){ a[i][j]=a[i][j-1]+temp; temp++; } s++; }
参考代码:
#include<iostream> using namespace std; int n; int a[100][100]; int main(){ cin>>n; // 第一列初始化 int p=1; a[0][0]=1; for(int i=1;i<100;i++){ a[i][0]=a[i-1][0]+p; p++; } // 将所有数进行赋值 int s=2; int temp; for(int i=0;i<100;i++){ temp=s; for(int j=1;j<100;j++){ a[i][j]=a[i][j-1]+temp; temp++; } s++; } for(int i=0;i<n;i++){ for(int j=0;j<n-i;j++){ cout<<a[i][j]<<" "; } cout<<endl; } return 0; }
0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复