|
![]() | 作者: QQ [hx007]
![]() |
登录 |
用C编译下面这个程序 1 121 12321 1234321 123454321 12345654321 1234567654321 123456787654321 12345678987654321 如果能用到1*1=1,11*11=121,111*111=12321......,更好,3Q(他们是成:“金字塔”形状的) [此贴被 QQ(hx007) 在 11月15日13时52分 编辑过] [此贴被 QQ(hx007) 在 11月15日13时54分 编辑过] [此贴被 QQ(hx007) 在 11月15日16时16分 编辑过] |
地主 发表时间: 07-11-15 13:52 |
![]() | 回复: listenwind [listenwind] ![]() |
登录 |
你的问题很具有代表性,这是个关于流程控制的程序 先不看列 只看行理解 比如 123456787654321 中间的8 是最大数(也是你输入的数字) 输出1-N很简单用一个循环就可以 代码: |
B1层 发表时间: 07-12-27 14:40 |
![]() | 回复: listenwind [listenwind] ![]() |
登录 |
然后接上面,既然我们已经可以在行递增输出1-N的数字,下面考虑后面的递减输出了。代码:void hanshu2(int n) //记住这函数的名字 hanshu2() { for(int j=n;j>=1;j--) cout<<j<<endl; } 输出结果为n n-1 n-2...321 (如果N大于3的话) |
B2层 发表时间: 07-12-27 14:45 |
![]() | 回复: listenwind [listenwind] ![]() |
登录 |
下面让我们结合上面两个循环写一个输出比如像123456787654321的函数:代码: 如果你输入的是4 输出结果为:1234321 理解 以上循环1和循环2之间的关系为顺序关系,就是循环1结束后接着开始循环2,就是说循环1里所有的数字输出完后,后面接着输出循环2要输出的数字 很简单吧? 流程控制就是 顺序 选择 循环 3个 下面的就是循环镶套了 |
B3层 发表时间: 07-12-27 15:02 |
![]() | 回复: listenwind [listenwind] ![]() |
登录 |
上面已经把最基础的准备知识说完了,现在该解决实质内容了 单从行说 两个循环(循环1和循环2)从行上已经可以输出了 1234...n....4321 了 下面我们运用循环镶套来用列控制输出 代码: 循环3控制循环1和循环2,循环1和循环2之间关系是,执行完循环1,然后执行循环2 代码: 因为每行输出的数字是变化的 也就是说行数和列数之间是一起变化的 之间的关系是:行数=列数 ,第一行显示数字的个数 也等于第一列数量被N减去的值 |
B4层 发表时间: 07-12-27 15:19 |
![]() | 回复: listenwind [listenwind] ![]() |
登录 |
上面看起来有点乱 这里我把刚刚编译通过的C++代码拿出来: 至于为什么是C++而不是C代码,是希望你能看懂理解后完成作业,起码地尊重我的劳动 代码: 有时候最简单的 就是最强大的! |
B5层 发表时间: 07-12-27 15:22 |
![]() | 回复: listenwind [listenwind] ![]() |
登录 |
补充: cout 相当于 c中的 prinrtf cin 相当于 scanf |
B6层 发表时间: 07-12-27 15:24 |
![]() | 回复: ziaichen [ziaichen] ![]() |
登录 |
感觉有两个问题,和大家分享下" 一、楼上所说的程序 当n=10的时候,所出现的数据为: 12345678910987654321 当n=11的时候,所出现的数据为: 123456789101110987654321 这也就不是一个有规律的数据阵了,我指的是单从单个数字上看,而且这个题目我感觉是应要求直接输出整个数字阵列的,而不是指定n的数值输出个单独的一行数字,如果在n的最大值为9的时候,这样一切都有规律的时候,楼上美女的那个参考函数就为多余的,应该在主函数中直接让值从1开始,在循环中增加到指定的值,这样就直接输出整个类金字塔数字阵。 二、楼主所说的程序如果是按照1*1=1,11*11=121,111*111=12321,1....1*1....=....所得的,也就是值n个1和n个1相乘(这里n从1开始),那所出的数据并不是按照楼上所说的具有规律性,比如: n=10 数字应该为 12345678900987654321 n=11 数字应该为 123456790120987654321 这是我个人的一点疑问,呵呵。 [此贴被 幻想笨蛋(ziaichen) 在 01月07日11时50分 编辑过] |
B7层 发表时间: 08-01-07 11:47 |
![]() | 回复: listenwind [listenwind] ![]() |
登录 |
代码: 红色地方代表输出空格,数字间有了空格就不易混淆,算是有规律吧? 楼上朋友所说的矩阵输出的算法具体是什么? 好久没来了 晕晕的! ![]() |
B8层 发表时间: 08-01-21 14:21 |
![]() | 回复: listenwind [listenwind] ![]() |
登录 |
1*1=1,11*11=121,111*111=12321,1....1*1....=.... 这里是不是需要用到运算符重载? 至少我是这样理解的,请指教,谢谢! |
B9层 发表时间: 08-01-21 14:24 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号