| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 748 人关注过本帖
标题:谁给我解释一下这段程序,谢谢!
只看楼主 加入收藏
magic475
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2005-1-14
收藏
 问题点数:0 回复次数:6 
谁给我解释一下这段程序,谢谢!

#include <stdio.h> #include <stdlib.h> #define P printf #define I atoi

int main(int a,char *v[]) { int i,r=5; if(a>1) r=I(v[1]); if(r<=0) r=5; if(r%2==0) ++r; for(i=0;i<r*r;P(i/r==(3*r)/2-(i%r+1)||i/r==r/2-i%r|| i/r==r/2+i%r||i/r==i%r-r/2?"*":" "),i++,i%r==0? P("\n"):0); return 0; }

搜索更多相关主题的帖子: 解释 
2005-01-19 12:22
magic475
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2005-1-14
收藏
得分:0 
没有人回答吗?

已经放了很久了!!!
2005-02-05 11:39
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 
你想做什么???
for(i=0;i&lt;r*r;P(i/r==(3*r)/2-(i%r+1)||i/r==r/2-i%r||
        i/r==r/2+i%r||i/r==i%r-r/2?"*":" "),i++,i%r==0?
        P("\n"):0);
看这迷糊!!!!

差点把你忘了...
2005-02-05 14:57
magic475
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2005-1-14
收藏
得分:0 
我在书上看到的,就是不清楚,所以才问你们!
2005-02-05 17:19
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

#include <stdio.h> #include <stdlib.h> /* #define P printf */ /*#define I atoi */ //这里是替换

int main(int a,char*v[]) //main参数 { int i,r=5 ; if(a>1)r=atoi(v[1]); //假如带参数运行,则取得参数项第一项的值作为*号方程的行数 if(r<=0)r=5 ; //如果输入的参数小过0,则使用默认参数 5 . if(r%2==0)++r ; //如果行数是偶数,则自增1,目的是为了满足下面的计算 for(i=0;i<r*r;i++) //将此凌形方程看成是 r*r的正方形, { if(i/r==(3*r)/2-(i%r+1))printf("*"); else if(i/r==r/2-i%r)printf("*"); else if(i/r==r/2+i%r)printf("*"); else if(i/r==i%r-r/2)printf("*"); else printf(" "); // 这里计算每一个点是打*,还是空格

if((i+1)%r==0)printf("\n"); //回车计算 /*P(i/r==(3*r)/2-(i%r+1)||i/r==r/2-i%r||i/r==r/2+i%r||i/r==i%r-r/2?"*":" "),i++,i%r==0?P("\n"):0; */ } return 0 ; }


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-02-05 22:04
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

main() { int t=0,i,n=11;//n为行数,这个可以打偶数行和奇数行

i=n/2+n%2;

for(;i;t+=2) { printf("%*s%*s\n",i,"*",t,"*"+(i==n/2+n%2)); i--; }

if(n%2)i++,t-=2;

for(;i<n/2+n%2;) { i++; t-=2; printf("%*s%*s\n",i,"*",t,"*"+(i==n/2+n%2));

} } 当然,还可以用递归来做得更简洁,一条语句就行了。


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-02-05 22:40
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 
是在书上看的么,还是在别的论坛上看的帖子???

这样的资料可以不看,因为写的就很乱,肯定不是高手(书上这样写的)!!!

无聊的时候可以打发一下时间!如果是刚入门,最好找例子排列比较整齐的看,这样容易入门!!!

差点把你忘了...
2005-02-06 09:40
快速回复:谁给我解释一下这段程序,谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041749 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved