×

c语言10个经典小程序

c语言10个经典小程序(求C语言经典小程序)

admin admin 发表于2024-05-30 22:12:22 浏览24 评论0

抢沙发发表评论

各位老铁们,大家好,今天由我来为大家分享c语言10个经典小程序,以及求C语言经典小程序的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

求C语言经典小程序

题目:有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() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i《=100000) bonus=i*0.1; else if(i《=200000) bonus=bonus1+(i-100000)*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; else bonus=bonus10+(i-1000000)*0.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,leap; printf("\nplease input year,month,day\n"); 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: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; defaultrintf("data error");break; } sum=sum+day; /*再加上某天的天数*/ 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) /*交换x,y的值*/ if(x》z) /*交换x,z的值*/ if(y》z) /*交换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,result; 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("\n");/*输出两个笑脸*/ for(i=1;i《11;i++) { for(j=1;j《=i;j++) printf("%c%c",219,219); printf("\n"); } }

编写几个C语言小程序

/*输入两个整数a和b,求平均值ave。并输出平均值。*/#include/*此头函数请不要删除*/main(){floata,b,ave;printf("请输入整数a和b以逗号隔开:\n");scanf("%f,%f",&a,&b);ave=(a+b)/2;printf("整数a和b的平均值是ave=%6.2f",ave);getch();}/*输入圆柱底面的半径radius和圆柱的高height,求圆柱的表面积area和体积volumn,要求输出结果保留两位小数、*/main(){floatradius,height,area,volumn;printf("请输入圆柱底面的半径radius:\n");scanf("%f",&radius);printf("请输入圆柱的高height:\n");scanf("%f",&height);area=3.14*(radius*radius)+2*3.14*radius;volumn=3.14*(radius*radius)*height;printf("圆柱的表面积area=%8.2f\n体积volumn=%8.2f",area,volumn);getch();}/*设银行定期存款的年利率rate为3.82%,并已知存款期为n年,存款本金为capital元,试编程计算n年后的本利之和deposit.要求rate,n,capital均从键盘输入,输出信息要完整清晰。。*/main(){floatrate,n,capital,deposit,i;printf("请输入年利率rate:");scanf("%f",&rate);printf("请输入存款本金capital:");scanf("%f",&capital);printf("请输入存期年n:");scanf("%f",&n);deposit=capital;i=n;while(i!=0){deposit=(1+0.0382)*deposit;i=i-1;}printf("%1f年后的本利之和为:%9.2f",n,deposit);getch();}

c语言编写小程序 已知2015年的元旦是星期四 ,求出2015年的任何一个日期是星期几

//#include "stdafx.h"//vc++6.0加上这一行.#include "stdio.h"void main(void){ char x={31,28,31,30,31,30,31,31,30,31,30,31}; char w={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; int m,d; while(1){ printf("Input month & day...\n"); scanf("%d%d",&m,&d); if(0《m && m《13 && d》0 && d《=md) break; printf("Error! redo: "); } printf("Today is %s\n",w);}

谁能用C语言帮我写几个小程序 急求

1、#include《stdio.h》int main(){int max(int x,int y,int z);int a,b,c,d;scanf("%d%d%d",&a,&b,&c); //scanf%d间不能有逗号,后面是输入的地址因此得加&d=max(a,b,c); //输入的是abc,不是x,y,z//x,y,z是形参a,b,c是实参printf("max=%d",d);//不是print是printfreturn 0;}int max(int x,int y,int z){return(x》y?(x》z?x:z):(y》z?y:z));} 2、#include《stdio.h》int main(){int a,b,num1,num2,temp;printf("Input a & b:");scanf("%d%d",&num1,&num2);if(num1》num2) /*找出两个数中的较大值*/{temp=num1; num1=num2; num2=temp; /*交换两个整数*/}a=num1; b=num2;while(b!=0) /*采用辗转相除法求最大公约数*/{temp=a%b;a=b;b=temp;}printf("The GCD of %d and %d is: %d\n",num1,num2,a); /*输出最大公约数*/printf("The LCM of them is: %d\n",num1*num2/a); /*输出最小公倍数*/return 0;}3、#include 《stdio.h》int main(){int year,result=0;printf("输入一个年份:\n");scanf("%d",&year);if(year%100==0){if(year%400==0)result=1;}else if(year%4==0)result=1;if(result==1)printf("\n%d是闰年",year);elseprintf("\n%d不是闰年",year);return 0;} 4、#include《stdio.h》#include《conio.h》int main(){char *toDaXie(char *s);/*函数--变大写*/char *s;printf("Input a string please!\n");gets(s);printf("The result:\n%s\n",toDaXie(s));getch();return 0;}char *toDaXie(char *s)/*函数--变大写的具体内容*/{int i;for(i=0;i《strlen(s);i++){if(s《123)/*如果这个字是小写字母*/s-=32;/*那就把它变成大写*/}return s;} 5、#include《stdio.h》int main(){printf("?? ? ?? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ?? ? ??");return 0;}

求C语言经典小程序!目的是熟悉C语言的使用技巧

我知道有一个人写了一些文章然后有人整理了下来。他写的东西都是代码, 而且是非常详细的注释那种的。这个人叫管宁你可以到网上搜搜。我这里有给你贴出来一点,你可以看看是否合你的意: 在c/c++中利用数组名作为函数参数传递排序和用指针进行排序的例子。 以下两个例子要非常注意,函数传递的不是数组中数组元素的真实值而是数组在内存中的实际地址。#include 《stdio.h》 void main(void) { void reversal(); static int a = {0,1,2,3,4,5,6,7,8,9}; /* 建立一个数组并初始化 */ int i; for (i=0;i《10;i++) { printf("%d ",a); } printf("\n"); reversal(a,10); /* 调用自定义涵数进行反向显示排序,并把数组a的起始地址传送给形式参数x */ for (i=0;i《10;i++) { printf("%d ",a); } printf("\n"); } void reversal(x,n) int x,n; /* 定义形式参数 */ { int m=(n-1)/2; /* 计算10个数需要循环几次,因为是两两调换第一个数组是x故应该是int(9/2) */ int temp,i,j; /* 建立零时变量temp用于每次交换处理时零时存储x的值 */ for (i=0;i《=m;i++) { j=n-1-i; /* 反向计算出被调换的数组下标,例如x */ temp=x; x=x; x=temp; } } /* 次题需要注意的是:这里由于a的实际值也就发生了改变 */ #include 《stdio.h》 void main(void) { void reversal(); static int a = {0,1,2,3,4,5,6,7,8,9}; /* 建立一个数组并初始化 */ int i; for (i=0;i《10;i++) { printf("%d ",a); } printf("\n"); reversal(a,10); /* 调用自定义涵数进行反向显示排序,并把数组a的起始地址传送给形式参数x */ for (i=0;i《10;i++) { printf("%d ",a); } printf("\n"); } void reversal(x,n) int *x,n; /* 定义x为指针变量 */ { int temp,*p,*i,*j; /* 这里需要注意的是temp用与交换的时候临时存储数据的 */ i = x; /* 利用指针变量i存储数组a的起始地址 */ p = x + ((n-1)/2); /* 计算最后一次循环的时候数组a的地址 */ j = x + n - 1; /* 计算数组a也就是a的结束地址好用于交换 */ for (;i《=p;i++,j--) /* 利用循环和指针进行数组元素值的交换 */ { temp=*i; /* 用temp临时存储*i也就是循环中a实际的值 */ *i=*j; *j=temp; } } /* 此例同样要注意到利用指针进行数组的操作同样改变了实际数组各元素的值 */ ============================== c/c++中指针学习的两个绝好例子对于众多人提出的c/c++中指针难学的问题做个总结: 指针学习不好关键是概念不清造成的,说的简单点就是书没有认真看,指针的学习犹如人在学习饶口令不多看多学多练是不行的,下面是两个很经典的例子,很多书上都有,对于学习的重点在于理解*x和x的理解,他们并不相同,*x所表示的其实就是变量a本身,x表示的是变量a在内存中的地址,如果想明白可以输出观察cout《《*x"|"x;,当定义了int *x;后对x=&a的理解的问题。仔细阅读和联系下面的两个例子我想指针问题就不是难点了!#include 《stdio.h》 main() { int a,b; /* 定义a,b两个整形变量用于输入两个整数 */ int *point_1,*point_2,*temp_point; /* 定义三个指针变量 */ scanf("%d,%d",&a,&b); /* 格式化输入a,b的值 */ point_1=&a /* 把指针变量point_1的值指向变量a的地址 */ point_2=&b /* 把指针变量point_2的值指向变量b的地址 */ if (a《b) { temp_point=point_1; /* 这里的temp_point是用于临时存储point_1的值也就是变量a的地址的 */ point_1=point_2; /* 把point_2的值赋予point_1 */ point_2=temp_point; /* 由于point_1的值已经改变无法找到,利用前面临时存储的也就是temp_point找回原point_1的值赋予point_2,打到把point_1和point_2值对换的目的*/ } printf("%d,%d",*point_1,*point_2); /* 利用*point_1和*point_2也就是分辨指向b和a的方法把值显示自爱屏幕上 */ } /* 此题需要注意和了解是的此法并没有改变变量a,b的值只是利用指针变量分别存储a和b的地址,然后再把那两个指针变量的值对换一下其实就是存储在 指针变量里面a与b的地址对换,在利用*point_1和*point_2的方式把调换后的值显示出来这里的*point_1实际就是a,此中算法并非真的改变a,b的值,而是 利用指针进行地址交换达到大小排序的目的. */ #include 《stdio.h》 main() { int a,b; /* 定义a,b两个整形变量用于输入两个整数 */ int *point_1,*point_2; /* 定义三个指针变量 */ scanf("%d,%d",&a,&b); /* 格式化输入a,b的值 */ point_1 = &a /* 把指针变量point_1的值指向变量a的地址 */ point_2 = &b /* 把指针变量point_2的值指向变量b的地址 */ compositor(point_1,point_2); /* 调用自定义的排序涵数,把a,b的地址传递给point_1和point_2 */ printf("%d,%d",a,b); /* 打印出a,b的值 */ } static compositor(p1,p2) int *p1,*p2; /* 定义形式参数p1,p2为指针变量 */ { int temp; /* 建立临时存储变量 */ if (*p1《*p2) /* 如果*p1《p2,注意这里的*p1和*p2其实就是a和b */ { temp = *p1; /* 利用变量temp用于临时存储*p1和就是a的值 */ *p1 = *p2; /* 将*p1的值也就是a的值换成*p2的值也就是b的值,等价于a=b */ *p2 = temp; /* 将*p2的值也就是temp的值等价于b=temp */ } } /* 注意:此题与上题不同的是,直接改变了a于b的值达到真实改变的目的 */

请C语言高手帮我编写几个小程序~(一定要用C++编写噢~)

第一个void reverse_merge(List &A,List &B,List &C){ InitList(C); i=j=1; k=0; la_len=ListLength(A); lb_len=ListLength(B); while((i《=la_len)&&(j《=lb_len)){ GetElem(A,i,ai); GetElem(B,i,bi); if(ai《=bj){ ListInsert(C,++k,ai); ++i;} else ListInsert(C,++k,bj); ++j;} } while(i《=la_len){ GetElem(A,i++,ai); ListInsert(C,++k,ai);} while(j《=lb_len){ GetElem(B,j++,bj); ListInsert(C,++k,bj);}}***隐藏网址***

以上就是我们为大家找到的有关“c语言10个经典小程序(求C语言经典小程序)”的所有内容了,希望可以帮助到你。如果对我们网站的其他内容感兴趣请持续关注本站。