由具体到抽象设计循环结构
2011-10-08 19:07
253 查看
编写算法:根据参数n打印具有下面规律的图形,如,当n=4时,图形如下:
1
5 2
8 6 3
10 9 7 4
问题分析:容易发现图形中数据排列的规律。
方法一:
先用一个数组按此顺序存储数据,再正常输出;
用斜行、列描述新的循环方向。 View Code
1 #include<iostream>
2 //#include<string>
3 using namespace std;
4 int main()
5 {
6 int i,j,n,a[100][100],k;
7 //memset(a,0,sizeof(a));
8 while(cin>>n)
9 {
10 for(i=1;i<=n;i++)
11 a[i][i]=i;
12 for(j=1;j<=n;j++)
13 {
14 k=n;
15 for(i=j+1;i<=n;i++)
16 {
17 a[i][j]=a[i-1][j]+k;
18 k--;
19 }
20 }
21 for(i=1;i<=n;i++)
22 {
23 for(j=1;j<=i;j++)
24 if(j==1) cout<<a[i][j];
25 else cout<<" "<<a[i][j];
26 cout<<endl;
27 }
28 cout<<endl;
29 }
30 return 0;
31 }[/b]
[/b]
1
5 2
8 6 3
10 9 7 4
问题分析:容易发现图形中数据排列的规律。
方法一:
先用一个数组按此顺序存储数据,再正常输出;
用斜行、列描述新的循环方向。 View Code
1 #include<iostream>
2 //#include<string>
3 using namespace std;
4 int main()
5 {
6 int i,j,n,a[100][100],k;
7 //memset(a,0,sizeof(a));
8 while(cin>>n)
9 {
10 for(i=1;i<=n;i++)
11 a[i][i]=i;
12 for(j=1;j<=n;j++)
13 {
14 k=n;
15 for(i=j+1;i<=n;i++)
16 {
17 a[i][j]=a[i-1][j]+k;
18 k--;
19 }
20 }
21 for(i=1;i<=n;i++)
22 {
23 for(j=1;j<=i;j++)
24 if(j==1) cout<<a[i][j];
25 else cout<<" "<<a[i][j];
26 cout<<endl;
27 }
28 cout<<endl;
29 }
30 return 0;
31 }[/b]
[/b]
相关文章推荐
- 数据结构基础(11) --循环链表的设计与实现
- 数据结构基础(7) --循环队列的设计与实现
- 浅谈系统设计中的抽象和具体
- 数据结构基础(7) --循环队列的设计与实现
- 数据结构基础(12) --双向循环链表的设计与实现
- C++实验4——循环结构设计
- matlab 循环结构设计习题
- 数据结构课程设计_双向循环链表
- 调查问卷表结构设计及具体实现
- 循环结构函数设计小结
- Linux C---程序设计基本结构——顺序、选择与循环
- [c++实验报告]第四次实验报告:循环结构设计
- 数据结构基础(11) --循环链表的设计与实现
- 数据结构基础(12) --双向循环链表的设计与实现
- 数据库树形结构表→转换→几何树(抽象到具体)
- 程序设计基本结构----顺序、选择与循环
- 数据结构基础(11) --循环链表的设计与实现
- JAVA进阶之旅(一)——增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法
- 数据结构基础(11) --循环链表的设计与实现
- 数据结构基础(12) --双向循环链表的设计与实现