考试网 >> IT认证 >> 等级 >> 等级动态 >> C语言考题:用文本方式显示图形

C语言考题:用文本方式显示图形

发布时间:2006-07-25 12:02     点击:
分页:[1] 2  下一页

题目:输入一个整数N(N<10),如果N=3,则输出 



222 

33333 

222 



依次类推。 

分析: 

一共输出2*N-1行 

设行数为m,则第m行输出m-1个空格,2*m-1个数字 

当m<=N 时,该行输出的数字为m 

设n=N,则当m>N 时,该行输出的数字为--n 

解法一: 

最基础的算法,目的是做出来就行 

程序体较难看 

main() 



int i=1,j=0,k=0,n=0,m=0; 

scanf("%d",&n); 

while(k<2*n-1) 



if(i<=n) 



for(j=0;j<n-i;j++) printf(" "); 

for(j=0;j<2*i-1;j++) printf("%d",i); 

printf("\n"); 

i++;k++; 



else 



for(j=0;j<i-n;j++) printf(" "); 

for(j=0;j<(4*n-2*i-1);j++) printf("%d",2*n-i); 

printf("\n"); 

i++;k++; 







往下程序体就比较好看了 

解法二: 

对上一个算法求精,这样做评卷人的打分会高一些 

main() 



int n,i,s=1,k; 

scanf("%d",&n); 

k=2*n-1; 

while(k!=0) 



for(i=0;i<n-1;i++) printf(" "); 

for(i=0;i<2*s-1;i++) printf("%d",s); 

printf("\n"); 

if(s<k){--n;++s;--k;} 

else {++n;--s;--k;} 





解法三: 

在将上一算法函数化,并带一点递归算法的味道,接近北大的最高要求 
分页:[1] 2  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有