c语言输出二进制执行 printf("%c","18.3L"); 后为什么会输出x

文档分类:
在线文档经过高度压缩,下载原文更清晰。
淘豆网网友近日为您收集整理了关于C语言课程设计报告-大炮打飞机的文档,希望对您的工作和学习有所帮助。以下是文档介绍:C语言课程设计报告-大炮打飞机 江苏教育学院信息技术专业课程设计报告姓名班级学号课程设计信息课程名称 C 语言课程设计报告课程设计题目大炮打飞机课程设计时间 2012 年 12 月 28 日成绩评阅教师 学年第一学期课程设计报告名称一、课程设计内容这个大炮打飞机的程序是一个简单的文字游戏,即使如此,也具有一定的趣味和意义,让我的编程能力提高了不少,以后在不断的进步中改进游戏,增加游戏的趣味性。算法:1.故事情节的随机产生2.飞机的随机产生3.杀敌情况和敌军伤亡情况的计算二、课程设计目的大炮打飞机的程序假想在 2010 年日本夺取钓鱼岛为背景,让游戏者做为一名保卫岛屿的勇士,驾驶高射炮和导弹车与来袭的日本鬼子进行战斗,日本的空军有 F22 战机,F16 战机和 F2 战机,而游戏者有 50 发炮弹和 5 发导弹,日军有5 架 F22,15 架 F16 和 10 架 F2. 游戏的规则是这样的:游戏者按“x”是发射炮弹,命中 F22 的概率为 1/15,命中 F16 的概率是 4/15,命中 F2 的概率是 6/15,炮弹落空的概率是 4/15。因为 F22 是四代机,比(来源:淘豆网[/p-7346587.html])较先进,F16 是三代机,F2 是比较古老的飞机。所以命中率有所不同。游戏者按“z”发射导弹,命中率为 100%,所以三种飞机的命中率都相等。玩家用完所有炮弹和导弹后,系统将计算玩家杀敌情况和敌人伤亡情况,给出相应的结果。序模块的要求:1.Main 主程序模块:玩家发射炮弹和导弹,计算杀敌情况2.故事情节模块:给出故事情节3.随机数产生模块:产生各种随机数,包括飞机的随机产生和故事情节的随机产生4.显示战斗结果模块:战争结束后,显示战斗伤亡情况三、算法的基本思想主要的数据类型定义:#define FTWOTWO 5 /*F22 战机的数量*/#define FONESIX 15 /*F16 战机的数量*/#define FTWO 10 /*F2 战机的数量*/#define SHOOT_NUM 50 /*高射炮射击次数*/#define DAODAN_NUM 5 /*导弹数量*/const char SHOOT = 'X'; /*射击键*/const char DAODAN =(来源:淘豆网[/p-7346587.html]) 'Z'; /*发射导弹的按键*/int f22, f16, f2; /*敌人的飞机数量*/ /*随机数*/int paoD /*炮弹量*/int daoD /*导弹量*/ /*开火键*/int opError = 0; /*操作失误次数*/ /*按任意键退出*/paoDan = SHOOT_NUM; /*炮弹数量初始化为 50*/daoDan = DAODAN_NUM; /*导弹数量初始化为 5*/f22 = FTWOTWO; /*F22 战机初始化为 5*/f16 = FONESIX; /*F16 战斗机初始化为 15*/f2 = FTWO; /*F2 战斗机初始化为 10*/主程序的流程及各程序模块之间的调用关系:Main()函数|| |开火主故事情节模块|| |调用随机数模块盗用炮击结果模块(各种随机数的产生)|调用计算模块,显示杀敌情况自然语言描述程序基本过程:在 main 函数的开始部分,调用主(来源:淘豆网[/p-7346587.html])故事情节模块,在界面上显示大炮打飞机的背景:随后给出玩家操作说明:按“x”开炮,按“z”发射导弹玩家有 50 发炮弹和 5 发导弹,所以用一个 while 循环,同时判断飞机剩余量和炮弹剩余量,当两者中有一个为空,则结束循环。在 while 循环中,调用随机数产生模块,玩家每发射一个炮弹,产生一个随机数,与相应的数字范围比较,随机给出炮击的结果,如果是发射导弹,则 100%命中。当 while 循环结束时调用计算模块计算玩家游戏结果。四、测试结果测试用列:主函数测试结果:所用数据:1.非开火键:g , G , 1, -12.字符串: kaipao结果:当为-1 时会产生一个缓冲字符,当为字符串为也会产生缓冲字符,其他的一般的都会处理错误处理。总结:这个程序旨在开火时要求用户按键,所以只是针对开火键进行测试,结果是输入多个字符时会产生缓冲字符,出现异常。五、源程序代码#include &stdio.h&#include &string.h&#include &std(来源:淘豆网[/p-7346587.html])lib.h&#include &time.h&#define FTWOTWO 5 /*F22 战机的数量*/#define FONESIX 15 /*F16 战机的数量*/#define FTWO 10 /*F2 战机的数量*/#define SHOOT_NUM 50 /*高射炮射击次数*/#define DAODAN_NUM 5 /*导弹数量*/const char SHOOT = 'X'; /*射击键*/const char DAODAN = 'Z'; /*发射导弹的按键*/void Story(); /*故事情节*/int GetRand1(); /*获取炮弹随机数*/int GetRand2(); /*获取导弹随机数*/void PrintFtwotwo(); /*显示 F22 被击落的情况*/void PrintFsix(); /*显示 F16 被击落的情况*/void PrintFtwo(); /*显示 F2 被击落的情况*/voi(来源:淘豆网[/p-7346587.html])d ShootNull(); /*炮弹落空*/void Display(int f22, int f16, int f2); /*显示战斗结果*/int main(){int f22, f16, f2; /*敌人的飞机数量*/ /*随机数*/int paoD /*炮弹量*/int daoD /*导弹量*/ /*开火键*/int opError = 0; /*操作失误次数*/ /*按任意键退出*/paoDan = SHOOT_NUM; /*炮弹数量初始化为 50*/daoDan = DAODAN_NUM; /*导弹数量初始化为 5*/f22 = FTWOTWO; /*F22 战机初始化为 5*/f16 = FONESIX; /*F16 战斗机初始化为 15*/f2 = FTWO; /*F2 战斗机初始化为 10*/Story();while ((paoDan & 0 || daoDan & 0) &&am(来源:淘豆网[/p-7346587.html])p; (f22 &0 || f16 & 0 || f2 &0)) /*判断炮弹是否为空和飞机是否全部被击落*/{scanf(&%c&, &shoot); /*射击*/if(shoot == 'x') /*按 x 时发射炮弹*/{rand = GetRand1(); /*产生随机数*/if(paoDan &= 0) /*判断炮弹是否为空*/{printf(&你已经用完了炮弹!\n\n&);getchar();}if(rand == 1 && f22 & 0) /*随机数与 1 比较,如果相等,则表示击落的是 F22 战机,同时判断 F22 战机是否有*/{if(f22 == 0){printf(&你击落了所有的 F22 战机!\n&);getchar();printf(&炮弹剩余量%d 枚, 剩余导弹数量%d 枚\n\n&, --(来源:淘豆网[/p-7346587.html])paoDan, daoDan);}PrintFtwotwo(); /*随机产生被击落的情形*/if(--f22 == 0){printf(&你击落了所有的 F22 战机!\n&);}}else if((rand == 2 || rand == 6 || rand == 10) && f16 & 0){ /*击落的是 F16 战机*/if(f16 == 0){printf(&你击落了所有的 F16 战机!\n&);getchar();printf(&炮弹剩余量%d 枚, 剩余导弹数量%d 枚\n\n&, --paoDan, daoDan);}PrintFsix(); /*随机产生 F16 被击落的情形*/if(--f16 == 0){printf(&你击落了所有的 F16 战机!\n&);}}else if ((rand == 3 || rand == 5 |(来源:淘豆网[/p-7346587.html])| rand == 7 || rand ==11 || rand == 130) && f2 & 0) /*击落的是 F2 战机*/{if(f2 == 0){printf(&你击落了所有的 F2 战机!\n&);getchar();printf(&炮弹剩余量%d 枚, 剩余导弹数量%d 枚\n\n&, --paoDan, daoDan);}PrintFtwo(); /*随机产生 F2 被击落的情形*/if(--f2 == 0){printf(&你击落了所有的 F2 战机!\n&);}}else{ShootNull(); /*炮弹落空*/}printf(&炮弹剩余量%d 枚, 剩余导弹数量%d 枚\n\n&,--paoDan, daoDan);getchar();}else if(shoot == 'z') /*按 z 发射导弹*/{rand = GetRand(来源:淘豆网[/p-7346587.html])2(); /*产生随机数,有 3 钟情况:0,1,2*/if(daoDan &= 0){printf(&你已经用完了导弹!\n\n&);getchar();}if(rand == 0) /*为 0 时击落的是 F22 战斗机*/{if(f22 == 0){printf(&你击落了所有的 F22 战机!\n&);getchar();printf(&炮弹剩余量%d 枚, 剩余导弹数量%d 枚\n\n&, paoDan, --daoDan);}PrintFtwotwo();if(--f22 == 0){printf(&你击落了所有的 F22 战机!\n&);}}else if(rand == 1) /*为 1 时击落的是 F16 战斗机*/{if(f16 == 0){printf(&你击落了所有的 F2 战机!\n&);getchar();printf(&qu(来源:淘豆网[/p-7346587.html])炮弹剩余量%d 枚, 剩余导弹数量%d 枚\n\n&, paoDan, --daoDan);}PrintFsix();if(--f16 == 0){printf(&你击落了所有的 F16 战机!\n&);}}Else /*击落的是 F2 战斗机*/{if(f2 == 0){printf(&你击落了所有的 F16 战机!\n&);getchar();printf(&炮弹剩余量%d 枚, 剩余导弹数量%d 枚\n\n&, paoDan, --daoDan);}PrintFtwo();if(--f2 == 0){printf(&你击落了所有的 F2 战机!\n&);}}printf(&炮弹剩余量%d 枚, 剩余导弹数量%d 枚\n\n&,paoDan, --daoDan);getchar();}Else /*处理按键错误*/{printf(& 你的操作有误! 作为一名战士, 你应该感到惭愧!!!\n\n&);if(++opError & 5){printf(&\n 在这种紧急的情况下,你竟然出现这么多次失误!\n 参谋长决定更换炮手!\n.......\n\n&);printf(&\n\n 按任意键并且回车退出: &);scanf(&%c&, &exit);return 0;}getchar();}}Display(f22, f16, f2);printf(&\n\n 按任意键并且回车退出: &);scanf(&%c&, &exit); /*按任意键退出*/return 0;}void Story() /*故事背景*/{printf(&\n 2012 年,一个寂静的黄昏......\n&);printf(&日本派来由 F22,F16,F2 组成的战斗机群偷袭钓鱼岛!!!\n&);printf(&你是一名驻守在岛上的勇士!\n&);printf(&在支援到来之前你必须驾驶高射炮击退日本鬼子!\n&);printf(&现在你有 50 发炮弹和 5 发导弹:(按'x'回车发射炮弹,按'z'回车发射导弹)\n&);播放器加载中,请稍候...
该用户其他文档
下载所得到的文件列表C语言课程设计报告-大炮打飞机.doc
文档介绍:
C语言课程设计报告-大炮打飞机 江苏教育学院信息技术专业课程设计报告姓名班级学号课程设计信息课程名称 C 语言课程设计报告课程设计题目大炮打飞机课程设计时间 2012 年 12 月 28 日成绩评阅教师 学年第一学期课程设计报告名称一、课程设计内容这个大炮打飞机的程序是一个简单的文字游戏,即使如此,也具有一定的趣...
内容来自淘豆网转载请标明出处.问题补充&&
char c, i );d=%:&quot.h&a=getchar();int main(){printf(&;printf(&c=getchar();;i=%10d\putchar(c);;printf(&%c&quot:&n&quot, a );%d&quot, &b ),b.h&scanf(&scanf(&%lf&return 0;int main(){return 0;printf(&scanf(&, d );n&n&a=%c\ );printf(&;printf(& )#include &lt.2lf\ ):&}#include &printf(&quot, &d );n&quot, &i );b=%c\, b );
kaieeingui2012 &
char c, i );d=%:&quot.h&a=getchar();int main(){printf(&;printf(&c=getchar();;i=%10d\putchar(c);;printf(&%c&quot:&n&quot, a );%d&quot, &b ),b.h&scanf(&scanf(&%lf&return 0;int main(){return 0;printf(&scanf(&, d );n&n&a=%c\ );printf(&;printf(& )#include &lt.2lf\ ):&}#include &printf(&quot, &d );n&quot, &i );b=%c\, b );
kaieeingui2012 &
•回答
•回答
•回答
•回答
•回答
b);n&n&quot,&b);return 0;stdio,&a,&b);;int main(int main(putchar(c),b;stdlib, char *argv[]){
char a,a;getchar(),a;c=getchar().h&%c %c&}2;printf(&quot,&a.h&gt.2lf&#92、#include &printf(&%10d %;scanf(&;;%d %lf&quot,b);scanf(&return 0;%c %c\#include &lt, char *argv[]){
int a.h&;stdio、#include &lt1
LiRnlidong&
猜你感兴趣
Copyright &
.&&闽ICP备号&&&
Powered by求c语言编程求两个正整数的最大公约数和最小公倍数?
求c语言编程求两个正整数的最大公约数和最小公倍数?
09-12-28 & 发布
在后面一列中,输入=if(b1&0,b1,0),然后拖动该单元格右下角的小黑十字,这样就可以根据输入的数据判断,如果&=0,则显示0,否则显示数值
请登录后再发表评论!
最大公约数:Int maxcommondivisor(int n, int m)           // 12,20 {    while (m)                                        //  while(20)      {
        int temp =                              //  temp = 20         m = n %             //  m = 12%20 = 8 :m 还不是0,继续下次循环。直到m = n%m =0,则n 即为最大公约数。参见“辗转相除法&         n  =       }  }
请登录后再发表评论!
【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf(&\n&); for(i=1;i&5;i++) /*以下为三重循环*/ for(j=1;j&5;j++) for (k=1;k&5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf(&%d,%d,%d\n&,i,j,k); } } ============================================================== 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { int bonus1,bonus2,bonus4,bonus6,bonus10, scanf(&%ld&,&i); bonus1=.1;bonus2=bonus1+.75; bonus4=bonus2+.5; bonus6=bonus4+.3; bonus10=bonus6+.15; if(i&=100000) bonus=i*0.1; else if(i&=200000) bonus=bonus1+(i-.075; else if(i&=400000) bonus=bonus2+(i-.05; else if(i&=600000) bonus=bonus4+(i-.03; else if(i&=1000000) bonus=bonus6+(i-.015; else bonus=bonus10+(i-.01; printf(&bonus=%d&,bonus); } ============================================================== 【程序3】 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后 的结果满足如下条件,即是结果。请看具体分析: 2.程序源代码: #include &math.h& main() { long int i,x,y,z; for (i=1;i&100000;i++) { x=sqrt(i+100); /*x为加上100后开方后的结果*/ y=sqrt(i+268); /*y为再加上168后开方后的结果*/ if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/ printf(&\n%ld\n&,i); } } ============================================================== 【程序4】 题目:输入某年某月某日,判断这一天是这一年的第几天? 1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊 情况,闰年且输入月份大于3时需考虑多加一天。 2.程序源代码: main() { int day,month,year,sum, printf(&\nplease input year,month,day\n&); scanf(&%d,%d,%d&,&year,&month,&day); switch(month)/*先计算某月以前月份的总天数*/ { case 1:sum=0; case 2:sum=31; case 3:sum=59; case 4:sum=90; case 5:sum=120; case 6:sum=151; case 7:sum=181; case 8:sum=212; case 9:sum=243; case 10:sum=273; case 11:sum=304; case 12:sum=334; default:printf(&data error&); } sum=sum+ /*再加上某天的天数*/ if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ leap=1; else leap=0; if(leap==1&&month&2)/*如果是闰年且月份大于2,总天数应该加一天*/ sum++; printf(&It is the %dth day.&,sum);} ============================================================== 【程序5】 题目:输入三个整数x,y,z,请把这三个数由小到大输出。 1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x&y则将x与y的值进行交换, 然后再用x与z进行比较,如果x&z则将x与z的值进行交换,这样能使x最小。 2.程序源代码: main() { int x,y,z,t; scanf(&%d%d%d&,&x,&y,&z); if (x&y) {t=x;x=y;y=t;} /*交换x,y的值*/ if(x&z) {t=z;z=x;x=t;}/*交换x,z的值*/ if(y&z) {t=y;y=z;z=t;}/*交换z,y的值*/ printf(&small to big: %d %d %d\n&,x,y,z); } ============================================================== 【程序6】 题目:用*号输出字母C的图案。 1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。 2.程序源代码: #include &stdio.h& main() { printf(&Hello C-world!\n&); printf(& ****\n&); printf(& *\n&); printf(& * \n&); printf(& ****\n&); } ============================================================== 【程序7】 题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful! 1.程序分析:字符共有256个。不同字符,图形不一样。 2.程序源代码: #include &stdio.h& main() { char a=176,b=219; printf(&%c%c%c%c%c\n&,b,a,a,a,b); printf(&%c%c%c%c%c\n&,a,b,a,b,a); printf(&%c%c%c%c%c\n&,a,a,b,a,a); printf(&%c%c%c%c%c\n&,a,b,a,b,a); printf(&%c%c%c%c%c\n&,b,a,a,a,b);} ============================================================== 【程序8】 题目:输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 2.程序源代码: #include &stdio.h& main() { int i,j, printf(&\n&); for (i=1;i&10;i++) { for(j=1;j&10;j++) { result=i*j; printf(&%d*%d=%-3d&,i,j,result);/*-3d表示左对齐,占3位*/ } printf(&\n&);/*每一行后换行*/ } } ============================================================== 【程序9】 题目:要求输出国际象棋棋盘。 1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 2.程序源代码: #include &stdio.h& main() { int i,j; for(i=0;i&8;i++) { for(j=0;j&8;j++) if((i+j)%2==0) printf(&%c%c&,219,219); else printf(& &); printf(&\n&); } } ============================================================== 【程序10】 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 2.程序源代码: #include &stdio.h& main() { int i,j; printf(&\1\1\n&);/*输出两个笑脸*/ for(i=1;i&11;i++) { for(j=1;j&=i;j++) printf(&%c%c&,219,219); printf(&\n&); } } 【程序11】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 2.程序源代码: main() { long f1,f2; f1=f2=1; for(i=1;i&=20;i++) { printf(&%12ld %12ld&,f1,f2); if(i%2==0) printf(&\n&);/*控制输出,每行四个*/ f1=f1+f2; /*前两个月加起来赋值给第三个月*/ f2=f1+f2; /*前两个月加起来赋值给第三个月*/ } } ============================================================== 【程序12】 题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 2.程序源代码: #include &math.h& main() { int m,i,k,h=0,leap=1; printf(&\n&); for(m=101;m&=200;m++) { k=sqrt(m+1); for(i=2;i&=k;i++) if(m%i==0) {leap=0;} if(leap) {printf(&%-4d&,m);h++; if(h%10==0) printf(&\n&); } leap=1; } printf(&\nThe total is %d&,h); } ============================================================== 【程序13】 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 2.程序源代码: main() { int i,j,k,n; printf(&'water flower'number is:&); for(n=100;n&1000;n++) { i=n/100;/*分解出百位*/ j=n/10%10;/*分解出十位*/ k=n%10;/*分解出个位*/ if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) { printf(&%-5d&,n); } } printf(&\n&); } ============================================================== 【程序14】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n&&k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 2.程序源代码: /* zheng int is divided yinshu*/ main() { int n,i; printf(&\nplease input a number:\n&); scanf(&%d&,&n); printf(&%d=&,n); for(i=2;i&=n;i++) { while(n!=i) { if(n%i==0) { printf(&%d*&,i); n=n/i; } } } printf(&%d&,n);} ============================================================== 【程序15】 题目:利用条件运算符的嵌套来完成此题:学习成绩&=90分的同学用A表示,60-89分之间的用B表示, 60分以下的用C表示。 1.程序分析:(a&b)?a:b这是条件运算符的基本例子。 2.程序源代码: main() { printf(&please input a score\n&); scanf(&%d&,&score); grade=score&=90?'A':(score&=60?'B':'C'); printf(&%d belongs to %c&,score,grade); } ============================================================== 【程序16】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 1.程序分析:利用辗除法。 2.程序源代码: main() { int a,b,num1,num2, printf(&please input two numbers:\n&); scanf(&%d,%d&,&num1,&num2); if(num1 { temp=num1; num1=num2; num2= } a=num1;b=num2; while(b!=0)/*利用辗除法,直到b为0为止*/ { temp=a%b; a=b; b= } printf(&gongyueshu:%d\n&,a); printf(&gongbeishu:%d\n&,num1*num2/a); } ============================================================== 【程序17】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析:利用while语句,条件为输入的字符不为'\n'. 2.程序源代码: #include &stdio.h& main() { int letters=0,space=0,digit=0,others=0; printf(&please input some characters\n&); while((c=getchar())!='\n') { if(c&='a'&&c&='z'||c&='A'&&c&='Z') letters++; else if(c==' ') space++; else if(c&='0'&&c&='9') digit++; else others++; } printf(&all in all:char=%d space=%d digit=%d others=%d\n&,letters, space,digit,others); } ============================================================== 【程序18】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+(此时 共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。 2.程序源代码: main() { int a,n,count=1; long int sn=0,tn=0; printf(&please input a and n\n&); scanf(&%d,%d&,&a,&n); printf(&a=%d,n=%d\n&,a,n); while(count&=n) { tn=tn+a; sn=sn+ a=a*10; ++ } printf(&a+aa+...=%ld\n&,sn); } ============================================================== 【程序19】 题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 找出1000以内的所有完数。 1. 程序分析:请参照程序&--上页程序14. 2.程序源代码: main() { static int k[10]; int i,j,n,s; for(j=2;j&1000;j++) { n=-1; s=j; for(i=1;i { if((j%i)==0) { n++; s=s-i; k[n]=i; } } if(s==0) { printf(&%d is a wanshu&,j); for(i=0;i printf(&%d,&,k[i]); printf(&%d\n&,k[n]); } } } ============================================================== 【程序20】 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? 1.程序分析:见下面注释 2.程序源代码: main() { float sn=100.0,hn=sn/2; for(n=2;n&=10;n++) { sn=sn+2*/*第n次落地时共经过的米数*/ hn=hn/2; /*第n次反跳高度*/ } printf(&the total of road is %f\n&,sn); printf(&the tenth is %f meter\n&,hn); } 我不知道你邮箱,我发给你
请登录后再发表评论!
main() { int p,r,n,m, printf(&please enter 2 numbers n,m:&); scanf(&%d,%d&,&n,&m);//输入两个正整数. if(n&m)//把大数放在n中,把小数放在m中. {temp=n; n=m; m= } p=n*m;//p是原来两个数n,m的乘积. while(m!=0)//求两个数n,m的最大公约数. { r=n%m; n=m; m=r; } printf(&its maxgongyueshu:%d\n&,n);//打印最大公约数. printf(&its mingongbeishu:%d\n&,p/n);打印最小公倍数.基本原理如下:用欧几里德算法(辗转相除法)求两个数的最大公约数的步骤如下:先用小的一个数除大的一个数,得第一个余数;再用第一个余数除小的一个数,得第二个余数;又用第二个余数除第一个余数,得第三个余数;这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)。例如求的最大公约数,第一次:用600除1515,商2余315;第二次:用315除600,商1余285;第三次:用285除315,商1余30;第四次:用30除285,商9余15;第五次:用15除30,商2余0。的最大公约数是15。两个正整数的最小公倍数=两个数的乘积÷两个数的最大公约数由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。这就是说,求两个数的最小公倍数,可以先求出两个数的最大公约数,再用这两个数的最大公约数去除这两个数的积,所得的商就是两个数的最小公倍数。例 求105和42的最小公倍数。因为105和42的最大公约数是21,105和42的积是÷21=210,所以,105和42的最小公倍数是210。
请登录后再发表评论!
int a=10, b=20;int min = a & b? a:int max = a & b? a:int i = min-1;for(; i& i--){  if(min % i== 0 && max % i == 0){    //最大公约数      }}if(i == 1){ //没有}i = max+1;for(; ; i++){  if(i % min == 0 && i % max == 0){    //最小公倍数  }}
请登录后再发表评论!

我要回帖

更多关于 c语言输出字符串 的文章

 

随机推荐