




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、经典c语言程序设计100例【程序1】题日:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1. 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。当然这里的去掉并不是减去而是条件判断,比如符合这个条件(i! =k&&i!二j&&j !=k)的才打印出来2. 程序源代码:main ()int i, j, k;printf("n");for (i=l; i<5; i+)/*以下为三重循环*/for(j=l;j<5;j+)for (k=l;k<5;k卄)
2、if (i!=k&&i!=j&&j!=k)/*确保 i、j k 三位互不相同*/printf (d, %d, %dn", i, j, k);【程序2】题目:企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提10%;利润高于 10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7. 5%; 20万到40万之间时,高于20万元的部分,可提成5%; 40万到60万之间时高于40万元的部分, 可提成3%; 60万到100万z间时,高于60万元的部分,可提成1.5%,髙于100万元时,超过 100万元的部分按1
3、%提成,从键盘输入当月利润i,求应发放奖金总数?1. 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。某一阶段的奖金数 个是有一个界限的2. 程序源代码:mai n ()long int i;int bonus 1, bonus2, bonus4, bonus6, bonuslo,bonus;scanf& i);bonus1=100000*0. 1;bonus2=bonus1+100000*0. 75;bonus4=bonus2+200000*0. 5;bonus6=bonus4+200000*0. 3;bonuslo bonus6+400000*0. 15;if(i
4、<=100000)bonus 二 i*0. 1;else if(i<=200000)bonus=bonusl+(i-l00000)*0. 075;else if(i<=400000)bonus=bonus2+(i-200000)*0. 05;else if(i<=600000)bonus=bonus4+(i-400000)*0. 03;else if(i<=1000000)bonus bonus6+(i-600000)*0. 015;elsebonus二bonus 10+(it000000) *0. 01;printf("bonus=%d",
5、bonus);/这个程序运行后有莫名其妙的错误? ? ?【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数 是多少?1. 程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如 果开方后的结果满足如下条件,即是结果。请看具体分析:虽然第一次、第二次的平方的结果没 说,但是这两个数和某一个固定的数是有平方根的关系,所以可以得到表达式,把表达式放进 for循环里面就可以得到这两个数的值,在通过if的判断看看是否符合条件,符合的话就打印 出来!2. 程序源代码:include "math, h"/这是
6、加载sqrt ()函数的类库main()long int i, x, y, z;for (i=l;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%ldn,/, i);【程序4】题目:输入某年某月某口,判断这一天是这一年的第几天?1. 程序分析:以3刀5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第儿天, 特殊情况,
7、四年一次的闰年且输入月份大于3时需考虑多加一天。2. 程序源代码:main()int day, month, year, sum, leap;prin tf (,znplease in put year, in on th, dayn);scanf ("%d, %d, %d", &year, &month, &day);switch (month) /*先计算某月以前月份的总天数*/case 1:sum=0;break;case 2:sum二31;break;case 3:sum二59;break;case 4:sum=90;break;case 5
8、:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum二212;break;case 9:sum二243;break;case 10:sum二273;break;case 11:sum=304;break;case 12:sum二334;break;default :printf (z,data error,/);break;sum=sum+day;/*再加上某天的大数*/辻(year%400=01 (year%4=0&&year%100! =0) /* 判断是不是闰年*/leap=l;elselc
9、ap=0;if (leap=l&&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最小。最 后把y、z中最大的一个数放在z位置上。2. 程序源代码:main ()int x, y, z, t;scanf (%d%d%d, &x,
10、&y, &z);输入的每个数用空格相隔if (x>y)t=x;x=y;y=t; /*交换 x, y 的值*/辻(x>z)t=z ; z=x ; x=t ; /*交换 x, z 的值*/if (y>z)t=y; y=z; z=t; /*交换 z, y 的值*/printf (/zsmall to big: %d %d %dn", x, y, z);【程序6】题目:用*号输出字母c的图案。1. 程序分析:可先用号在纸上写出字母c,再分行输出。2. 程序源代码:include "stdio. h"main()printf (z,hell
11、o c-world! n,z);printf (,z*rt);printf (z,*n");printf(" * n");printf c *n);【程序7】beautiful!题目:输出特殊图案,请在c环境中运行,看一看,ver1. 程序分析:字符共有256个。不同字符,图形不一样。2. 程序源代码:include "stdio. h"main()char a=176, b=219;printf ("%c%c%c%c%cn", b, a, a, a, b);printf ("%c%c%c%c%cn",
12、a, b, a, b, a);printf ("%c%c%c%c%cn", a, a, b, a, a);printf (,%c%c%c%c%cn, a, b, a, b, a);printf ("%c%c%c%c%cn", b, a, a, a, b) ;【程序8】题目:输出9*9 口诀。1程序分析:分行与列考虑,共9行9列,i控制行,j控制列。比如:i*j=i*j1*1=11*2=21*3二32*1=2 2*2二4 2*3二62.程序源代码:#include "stdio. h"mai n ()int i, j, result;p
13、rintf ("n");for (i=l;i10;i+) for(j=l;j<10;j+)rcsult=i*j;printf (/%d*%d=%-3d/,, i, j, result) ;/*-3d 表示左对齐,占 3 位*/ printffw) ;/*每一行后换行*/【程序9】题目:要求输出国际象棋棋盘。1. 程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。2. 程序源代码:include "stdio. h"inainoint i, j;setconsole0outputcp(437) ;/输入这行代码才能正
14、常显示128后面的ask码for(i=0;i<8;i+)for(j=0;j<8;j+)if (i+j)%2=0)printf(*%c%c",219,219);elseprintfc ”);printf("n");【程序10】题目:打印楼梯,同时在楼梯上方打印两个笑脸。1. 程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。2. 程序源代码:#include "stdio. h"main()int i, j;setconsoleooutputcp(437) ;/输入这行代码才能正常显示128后面的ask码 pri
15、ntf (/,lln/,) ;/*输出两个笑脸*/for(i=l;i<ll;i+)for(j=l;j<=i;j+)printfr%c%cz,, 219, 219);printf ("n");【程序11】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1. 程序分析:兔子的规律为数列1, 1, 2, 3, 5, 8, 13, 21.2. 程序源代码:main()long fl, f2;int i;fl=f2=1:for(i=l;i<=20;i+) print
16、fc%121d %121d,fl,f2);if(i%2=0) printfcn/z);/*控制输出,每行四个(每次输出两个,两次输出四个)*/ fl=fl+f2; /*前两个月加起来赋值给第三个月*/f2二fl+f2; /*前两个月加起来赋值给第三个月*/【程序12】题目:判断101-200之间有多少个素数,并输出所有素数。1. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数的平方根),如果能被整除,则表明此数不是素数,反之是素数。素数就是质数!2. 程序源代码:#include "math, h"main ()int m, i, k, sum二0, lea
17、p二 1;printf (z,nz,);for(m=101;m<=200;m+) k=sqrt(m+1);for(i=2;i<=k;i+)if(m%i=0)leap=0;break;/如果是素数的话就打印出来if(leap) printf("%-4ct, m);sum+;if (h% 10=0) printf("n");leap=l;printf("nthe total is %d", sum);【程序13】题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于 该数本身。例如:153是一个“水仙花数”
18、,因为153=1的三次方+ 5的三次方+ 3的三次方。1程序分析:利用for循环控制100-999个数,每个数分解出个位(i%10),十位(i/10%10), 百位(i/100)o通过判断符合条件(百位*100+十位*10+个位=百位的三次方加十位的三次方加个位的三次方)的 打印出来2.程序源代码:mai n ()int i, j, k, n;printf (/z,wa ter f lowerj number is:");for (n=100;n<1000;n 卜)i二n/100; /*分解出百位*/j=n/10%10;/*分解出十位*/k=n%10; /*分解出个位*/if(
19、i*100+j*10+k=i*i*i+j*j*j+k*k*k)printfn);【程序14】题目:将一个止整数分解质因数。例如:输入90,打印出90二2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1) 如果这个质数恰等于n,则说明分解质因数的过程己经结束,打印出即可。(2) 如果*k (不等于),但n能把k整除,则应打印出k的值,并用n除以k的商,作为新的 正整数n,重复执行这步。(3) 如果n不能把k整除,则用k+1作为k的值,重复执行第一步,这里用一个while循坏直到 k=n跳岀循环。2.程序源代码:/* zheng int is divi
20、ded yinshu*/main()int n, i;printfcnplease input a number:n");scanf ("%d: &n);printf("%d二",n);for(i 2;i<=n;i+)wh i 1 e (n!=i)if (n%i=0) printf cw, i);n=n/i;elsebreak;【程序15】题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用a表示,60-89分之间的用 b表示,60分以下的用c表示。1. 程序分析:条件运算符:6>b)? a:b这是条件运算符的基本例
21、子。2. 程序源代码:main()int score;char grade;printf("please input a scoren);scanf (%d: &score);grade= score>=90?> a' : (score>=60?,b,:' c');printf(d belongs to %czz, score, grade);(2)(大的那个数没用了)把小的数赋值给大的数,把取模获得的值赋值给小的值3:重复前 面两步,直到取模的值等于零,退出循环就可以获得 公约数:最后一次被求模所得的值 公倍 数:输入的两个数相乘再
22、除以公约数2.程序源代码:main()int a, b, numl, num2, temp;printf (/zplease input two numbers:n,z);scanf (%d, %d”, &numl, &num2);if(numl<num2) temp二num1;numl二num2;num2=temp;a=numl;b=num2;wh订e(b! =0)/*利用辗除法,直到b为0为止*/tcmp=a%b;a=b;b二temp;printf (,zgongyueshu:%dn", a);printf c'gongbeishu:%dnuinl*
23、num2/a);【程序17】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。1. 程序分析:利用while语句,条件为输入的字符不为'n.关键语句c=getchar();它的意思是: 从电脑键盘上获取输入的字符串里的一个字符,第二次调用获取输入的字符串的下一个字符,并 把它赋值到字符c中;通过不断的判断c知道整个字符串的情况;每个符号都対应有具体的数俏,通过每个字符的数俏范圉来确定每个字符的类型!还有一个比较难懂的就是为什么没有通过scanf (),也能获得字符串,是因为输入的字符再回 车后会出现再缓存里面而h回车字符也是会再缓存当中的,而getchar ()能
24、获得缓存里面的内 容!2. 程序源代码:#include "stdio. h"main ()char c;int letters二0, space二0, digit二0, others=0;printf(please input some characters'll");while(c getchar() ! * n*)if (c=,a' &&c二'z' | | c二'a' &&c二'z')letters+;else if(c=,')space+;else if
25、 (c二'o'&&c='9')digit+;elseothers+;prin tf (,zall in all: char=%d space=%d digit=%d others 二 dn" letters, space, digit, others);1. 程序分析:关键是计算岀每一项的值(注恵这里数值的变化拿2来说,第一次是2,第二次是 22,比第一次大20,第三次是222,比第二次大200,所以后面数值相差是2000, 20000,十 倍也就是一个零的关系这是和a的关系,还要知道后面那个数和前面一个数值的关系比如:2二2+0;第一
26、项值22二2+20第二项值222二22+200第三项值2222二222-2000 第四项值22222二2222+20000,)while语句的使用:n项依次相加,相加的次数是n次2. 程序源代码:mai n ()int a, n, count二 1;long int sn=0, tn=0;printf("please input a and nrt);scanf ("%d, %d", &a, &n);printf ("a=%d, n=%dn", a, n);while(count二n)tn=tn+a;/tn是下一项数值sn二sn
27、+tn;/sn是前面的数值总和加上下一项数值a二a*10;/a是每次相邻两项的差值,+count;printf (,?a+aa+. =%ldn,/, sn);1. 程序分析:请参照程序<一上页程序14.完数的值等于除了它本身的所有因子的和,包括1;2. 程序源代码:main()static int k10;int i, j, n, s;for(j=2;j<1000;j+)n=-l;s=j;for(i=l;i<j;i+)if(j%i)=o)n+;s=s-i;kn=i;if (s=0)printf("%d is a wanshu", j);for(i=0;i&
28、lt;n;i+)printf ("%d, ", ki);printf ("%drt, kn);【程序20】题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?1. 程序分析:见下面注释,弹起来后再落地,总距离是除了z前的距离的距离还耍再加上两次能 反弹的距离2. 程序源代码:main()fl oat sn 二 100. 0, hn 二 sn/2;int n;for (n=2;n<=10;n+)sn=sn+2*hn;/*第n次落地时共经过的米数*/hn二hn/2; /*第n次反跳高度*
29、/printf (z,the total of road is %fn", sn);printf (/?the tenth is %f meterxn, hn);【程序21】题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,乂多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。1. 程序分析:采取逆向思维的方法,从后往前推断.2. 程序源代码:main()int day, xl, x2;day=9;x2=l;while(day>0)xl=(x2+
30、l)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/x2=xl;day; printf (z/the total is %dnz,, xl);【程序22题目:两个乒乓球队进行比赛,各出三人。甲队为a, b,c三人,乙队为x, y, z三人。已抽签决定 比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x, z比,请编程序 找出三队赛手的名单。1. 程序分析:判断素数的方法:用一个数分别去除2到sqrt (这个数),如果能被整除,则表明此数不是素数,反之是素数。2. 程序源代码:mai n ()char i, j, k;/*i是a的对手,j是b的对手,k是c的对手*/for (
31、i=,x' ; i<=,z,; i+)for (j二'x,; j<=,z,; j+)if(i!二 j)for (k=,x" ;k<二'z' ;k+) if(i!=k&&j!=k) if (i!二'x'&&k!二'x'&&k!二'z')printf (z,order is a-%ctb-%ctc-%cn", i, j, k);【程序23题目:打印出如下图案(菱形)*彳j vjvjvj2" %?>1. 程序分析:先把图
32、形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。2. 程序源代码:main ()int i, j, k;前面四行for(i=0;i<: 3;i+)for(j=0;j<=2-i;j+)printf(" ”);for(k=0;k<=2*i;k+)printf("*");printfcan");/后面三行for(i=0;i<=2;i+)for(j=0;j<=i;j+)printfc ”);for(k=0;k<=4-2*i;k+)printf("*");p
33、rintf rnz,);【程序24题目:有一分数序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13.求出这个数列的前20项之和。1. 程序分析:请抓住分子与分母的变化规律。2. 程序源代码:main()int n,t, number=20;float a=2, b=l, s=0;for(n二1;n二number;n+)s二s+a/b;t=a;a=a+b;b=t ;/*这部分是程序的关键,请读者猜猜t的作用*/printf (''sum is %9. 6fn", s);【程序25题目:求 1+2!+3!+.+20!的和1. 程序分析:此程序只是把累加变
34、成了累乘。2. 程序源代码:main()float n, s=0, t=l;for (n=l;n<=20;n+)t*=n;s+=t;printf("l+2!+3!. +20!=%en", s);【程序26】题目:利用递归方法求5!。1. 程序分析:递归公式:fn=fn_l*4!2. 程序源代码:#inelude "stdio. h"main()int i;int fact ();for(i=0;i<5;i+)printf("40:%d!=%dn", i, fact(i); int fact(j)int j;int sum;
35、if(j=o)sum=l;elsesum=j*fact(j-1);return sum;【程序27题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。1程序分析:2.程序源代码:include "stdio. h"mainoint i=6;void palin(int n);printfc请输入6位字符串palin(i);printfcn");void palin(int n)char next;if(n<=l)next=getchar();printfcn顺序置换后的字符为:");putchar (next);elsenext=g
36、etchar();palin(n-l);putchar(next);【程序28题目:有5个人坐在-起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说 比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?1. 程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。2. 程序源代码:age(n)int n;int c;if(n=l) c=10;else c=age(n-l)+2;return(c);main () print
37、f ("%d", age(5);【程序29题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。1. 程序分析:学会分解岀每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提 供)2. 程序源代码:main()long a, b, c, d, e, x;scanf ("%ld", &x);a二x/10000;/*分解出万位*/b=x%10000/1000;/* 分解出千位 */c=x%1000/100;/* 分解出百位 */d二x% 100/10; /*分解出十位*/e二x%10;/*分解出个位*/if (a
38、!=0) printf (z,there are 5, %ld %ld %ld %ld %ldn", e, d, c, b, a);else if (b!=0) printf (z,there are 4, %ld %ld %ld %ldn", e, d, c, b);else if (c!=0) printf c there are 3, %ld %ld %ldn", e, d, c);else if (d !=0) printf ("there are 2, %ld %ldn,z, e, d);else if (e!=0) printf (z,the
39、re are l,%ldn", e);【程序30题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相 同。1. 程序分析:同29例2. 程序源代码:main()long ge, shi, qian, wan, x;scanf ("%ld", &x);wan=x/10000;q ian=x%10000/1000;shi=x%100/10;ge=x%10;i f (ge=wan&&shiqian) /*个位等于万位并且十位等于千位*/printf (z,this number is a huiwenn&quo
40、t;);elseprintf(this number is not a huiwen'n");【程序31】题目:请输入星期几的第一个字母来判断-下是星期几,如果第一个字母一样,则继续 判断第二个字母。1. 程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二 个字母。2. 程序源代码:sinclude <stdio h>void main()char letter;printf (''please input the first letter of somedayn,z);while (letter=getch() !
41、='y' )/*当所按字母为 y 时才结束*/ switch (letter)case 1 s1 :printf (,zplease input seco nd lettern,/);if (letter 二 getch()=' a')printf(“saturday、n);else if (letter=getch() =' u")printf(sundayrt);else printf (z,data errorn,/);break;case ' f' :printf(fridayxn);break;case ':p
42、rintf (mondayxn);break;case ' t" :printf (please input second lettern/z);if (1 etter=getch ()u')printf(tuesdayn);else if (letter=getch() =, hj)printf(thursdayrt);else printf (/zdata errorn/z);break;case ' w :printf (,zwednesdayn");break;default: printf ("data errorn,/);【程序
43、32题目:press any key to change color, do you want to try it. please hurry up!1. 程序分析:2. 程序源代码:include <stdio. h>include <stdlib. h>void main(void) char a16;int color;for (color = 0; color < 16; color+)sprintf(a, "color %d,color);system (a);/textbackground(color) ;/*设置文本的背景颜色*/print
44、f (z,this is color %drnzz, color);cprintf (z/press any key to continuern);getcho ;/*输入字符看不见*/【程序33题目:学习gotoxy ()与clrscr ()函数1. 程序分析:2. 程序源代码:include <conio. h>void mdin(void)clrscro ;/*清屏函数*/ textbackground(2);gotoxy(1, 5) ;/*定位函数*/cprintf(output at row 5 column ln"); textbackground(3);go
45、toxy(20, 10);cprintf (,zoutput at row 10 column 20rt); 【程序34题目:练习函数调用1. 程序分析:2. 程序源代码:include <stdio. h>void hcllo_world(void)printf (z,hello, world!n,z);void three_hellos(void)int counter;counter+)for (counter = 1; counter <= 3 hello world() ;/*调用此函数*/void mdin(void)three_hellos() ;/*调用此函数
46、*/【程序35题目:文本颜色设置1. 程序分析:2. 程序源代码:include <conio. h>void mdin(void)int color;for (color = 1; color < 16; color+)textcolor (color) ;/*设置文本颜色*/ cprintf (z/this is color %drn?/, color);textcolor(128 + 15);cprintf (z,this is blinkingrnz,);【程序36题目:求100之内的素数1. 程序分析:2. 程序源代码:include <stdio. h>
47、;#include "math, h"define n 101main ()int i, j, line, an;for(i=2;i<n;i+) ai=i;for (i=2;i<sqrt(n);i+) for(j=i+l;j<n;j+) if(ai!=0&&aj!=0) if (aj%ai=0)printf ("n");for(i=2,1ine=0;i<n;i+)if(aiu0)printf (/,%5d/,, ai); line+;if(line=10) printf cw);line=0;【程序37题目:对10
48、个数进行排序l程序分析:可以利用选择法,即从后9个比较过程屮,选择一个最小的与第一个元素交换, 下次类推,即用第二个元素与后8个进行比较,并进行交换。2.程序源代码:sinclude <stdio h>void main(void)/对输入的十个数进行排序/*方法1:选择排序法,即从后9个比较过程屮,选择一个最小的与第一个元素交换, 下次类推,即用第二个元素与后8个进行比较,并进行交换。方法2:冒泡法,把第一个数定义为最小的,然后和后面九个数分別做比较,如果后面 的是小的,马上交换,类推,即用第二个元素与后8个进行比较,并进行交换。*/int i, j, min, tem, a10
49、;printf (z/please input ten num:n/z);for (i=0;i<10;i+)printf (z/a%d=z/, i);scanf&ai) ;printf ("n");for(i=0;i<10;i+)printf("%5d", ai);printfcw);/* /方法1:排序法for(i=0;i<10;i+)min=i;for (j=i+l;j<10;j+)if(amin>aj) min=j;tem=ai;ai=amin;a.m in二 tem; */方法2:冒泡法for(i=0;i&l
50、t;10;i+)for(j=i+l;j<10;j+)if(ai>aj) tem=ai;ai=aj;aj=tem;printf (z/after sorted n);for(i=0;i<10;i+)printf (5d,ai);【程序38题目:求一个3*3矩阵对角线元素之和1程序分析:利用双重for循环控制输入二维数组,再将aii累加后输出。2.程序源代码:main()float a33, sum=0;int i, j;printf("please input rectangle element:n");for(i=0;i<3;i+)for(j=0;j
51、<3;j+)scanf ("%f", &ai j);for(i=0;i<3;i+)sum=sum+aii;printf (z,duijiaoxian he is %6. 2f", sum);【程序39题冃:有一个已经排好序的数组。现输入一个数,要求按原來的规律将它插入数组中。1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。2. 程序源代码:include <stdio. h>void main(void)int a10 = l,4, 9, 13, 16, 19,
52、28, 60, 98;int i, j;int tempi, temp2;int number;printfc请输入一个整数:“); scdnf(%d", &numbet);if(number>a8)/比第九个大就是最大的一个了a9二number;else/否则从前面一个个比较,for (i二0;i10;i+)if (ai>number) /直到遇到一个比输入大的数, templ=ai;ai二number; /就插到它前面 for(j=i+l; j<10; j+)/启面的数依次往后退一位 temp2=aj; aj二tempi; templ=temp2;bre
53、ak;此处的跳出很重要没有的话ai后面的数都会变成number这里有一个疑问,break直接跳出了外面的for循环,跳过了辻? /恩!这里的break不能写到下面一个嵌套,/因为可能会发牛没有通过一次if就会被break 了,和预期结果不符 打印整个数组出来 printfc排列后的数组:“); for(i=0;i<10;i+) printf (z,%d"、ai);【程序40】题目:将一个数组逆序输出。1. 程序分析:用第一个与最后一个交换。2. 程序源代码:include <stdio. h>void main(void)int num二0;int a5;int t
54、emp, i;printf ("请输入5为的数组:");for(i=0;i<5;i+)scanf (z/%dz/, &ai);/交换数组位置的核心代码for(i=0;i<5/2;i+) temp=ai; ai=a5-i-l; a5-i-l=temp;for(num=0;num<5;num+) printf (d"、gnum);printf (”rt);【程序41】题目:学习static定义静态变量的用法l程序分析:2.程序源代码:有啥用? ? ?include "stdio. h"varfunc 0int var=0;
55、static int static_ var=0;printf (,z40:var equal %d n", var);printf (,40:static var equal %d n static_var);printf ("n");var+;static var+;void main()int i;for(i=0;i<3;i+)varfunc();【程序42题目:学习使用auto定义变量的用法1. 程序分析:2. 程序源代码:include "stdio. h"main()int i, num;num=2;for (i=0;i<
56、;3;i+) printf (,z40: the num equal %d n", num);num+;auto int num=l;printf("40: the internal block num equal %d n", num); num+;【程序43】题目:学习使用static的另一用法。1. 程序分析:2. 程序源代码:include "stdio. h"main()int i, num;num二2;for(i=0;i<3;i+)printf (/z40: the num equal %d n", num);num+;static int num=l;printf (40:thc internal block num equal %dn,z, num); num+;【程序44】题目:学习使用external的用法。1. 程序分析:2.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度分手补偿协议书范本-情感经济赔偿细则
- 二零二五年度地下停车场施工合同终止与照明系统升级协议
- 2025年度环保技术企业工伤保险与劳动合同执行标准
- 2025年度绿色环保住宅承包出租房租赁协议
- 2025年度租赁式办公空间管理合同
- 2025年度烟草专卖许可证转让及市场推广合作合同
- 2025年度科技型企业多人入股共同创业协议
- 2025年度股指期货交易经纪业务合作协议
- 2025年度新能源开发生意合作合同模板
- 二零二五年度法院执行和解协议书司法鉴定争议解决合同
- 成人慢性肾脏病食养指南(2024年版)
- 新概念英语第一册Lesson67-(共69张课件)
- 羊传染性脓疱病
- 医学实验室与临床交流与沟通的方式和意义
- 《跨境电子商务实务》教学大纲
- 人教版英语八年级下册 Unit 2 单元复习检测卷
- 药品与耗材进销存管理制度
- 胸外科医生进修汇报
- 2024至2030年中国关节养护品行业市场前景调查及投融资战略研究报告
- 软件工程外文翻译文献
- 胸腔闭式引流护理-中华护理学会团体标准
评论
0/150
提交评论