简单的C程序35个.docx
《简单的C程序35个.docx》由会员分享,可在线阅读,更多相关《简单的C程序35个.docx(27页珍藏版)》请在冰豆网上搜索。
简单的C程序35个
1、1+2+3+…+100
#include
main()
{
intsum=1;
intk=2;
for(;k<=100;)
{
sum=sum+k;
k++;
}
printf("Thesumis%d.Welldone.\n\n",sum);
}
2、1加到50分之1
#include
main()
{
floatsum=0;
inti=1;
while(i<=50)
{
sum=sum+1/(float)i;
i++;
}
printf("Thesumis%f.Welldone!
\n\n",sum);
}
3、输分数给等级
#include"stdio.h"
main()
{
intscore,grade;printf("Inputascore(0~100):
");
scanf("%d",&score);
grade=score/10;/*将成绩整除10,*/
switch(grade)
{
case10:
case9:
printf("grade=A\n\n");break;
case8:
printf("grade=B\n\n");break;
case7:
printf("grade=C\n\n");break;
case6:
printf("grade=D\n\n");break;
case5:
case4:
case3:
case2:
case1:
case0:
printf("grade=E\n\n");break;
default:
printf("Thescoreisoutofrange!
\n\n");
}
}
4、百钱买百鸡
/*例3.22*/
#include
intmain()
{
intcocks=0;
printf("%8s%8s%8s\n","cocks","hens","chicks");
while(cocks<=19)
{
inthens=0;
while(hens<=33)
{
intchicks=100-cocks-hens;
if(5*cocks+3*hens+chicks/3.0==100)
printf("%8d%8d%8d\n",cocks,hens,chicks);
hens++;
}
cocks++;
}
return0;
}
5、比较五个数的大小
#include
floatmax5(floatv,floatw,floatx,floaty,floatz)
{
floatmax;
if(v>=w&&v>=x&&v>=y&&v>=z)
max=v;
elseif(w>=v&&w>=x&&w>=y&&w>=z)
max=w;
elseif(x>=v&&x>=w&&x>=y&&x>=z)
max=x;
elseif(y>=v&&y>=w&&y>=x&&y>=z)
max=y;
elseif(z>=v&&z>=w&&z>=x&&z>=y)
max=z;
printf("这五个数中最大的数是%f\n\n",max);
}
main()
{
floata,b,c,d,e;
printf("请输入五个数:
\n");
scanf("%f%f%f%f%f",&a,&b,&c,&d,&e);
max5(a,b,c,d,e);/*调用函数max5()*/
return0;
}
6、查'a'的ASCII码
#include
intmain()
{
charch;
ch='a';
printf("%d\n\n",ch);
return0;
}
7、查看地址
#include"stdio.h"
main()
{
inta;
scanf("%d",&a);
printf("%d",&a);
return0;
}
8、从大到小输出
#include"stdio.h"
main()
{
intx,y,z;
intc;
printf("快鬼D输入三个数啦:
\n");
scanf("%d%d%d",&x,&y,&z);
if(y{
c=y;y=z;z=c;
}
if(x{
c=x;x=z;z=c;
}
if(x{
c=x;x=y;y=c;
}
printf("从大到小排列:
%d%d%dYeah!
我得左喇!
!
\n\n",x,y,z);
return0;
}
9、从小到大排列两个数
#include
exchange(intx,inty)
{
inttemp;
temp=x;
x=y;
y=temp;
printf("Fromsmalltobigis:
%d,%d\n\n",x,y);
}
intmain()
{
inta,b;
printf("请输入两个数:
\n");
scanf("%d%d",&a,&b);
if(a>b)
exchange(a,b);
if(a
printf("Fromsmalltobigis:
%d,%d\n\n",a,b);
return0;
}
10、打印人民币符号
#include
intmain()
{
printf("Y\b=\n\n");
return0;
}
11、大小写互换
#include
main()
{
charunknown;
printf("请输入一个英文字母:
");
scanf("%c",&unknown);
if(unknown>='a'&&unknown<='z')
unknown=unknown-32;
elseif(unknown>='A'&&unknown<='Z')
unknown=unknown+32;
printf("这个小(大)写字母的大(小)写是:
%c\n\n",unknown);
return0;
}
12、对排序数列进行折半查找
/*例5.3*/
#include
#include
#defineN19
intmain()
{
inta[N]={2,5,6,7,8,13,15,17,19,21,23,25,26,27,28,35,41,52,63};
inttop=0,mid,bot=N-1,x;
printf("请输入要找的元素:
");
scanf("%d",&x);
printf("\n");
for(;top<=bot;)
{
mid=(top+bot)/2;
if(x==a[mid])
{
printf("找到的元素%d是:
a[%d]\n\n",x,mid);
exit(0);
}
elseif(x>a[mid])
top=mid+1;
else
bot=mid-1;
}
printf("没有找到该元素\n\n");
return0;
}
13、符号位变为数据的最高位和最高位变为符号位
#include
intmain()
{
unsignedshortus1=32767,us2=65535,us;
signedshortss=-7;
us=ss;
printf("
(1)ss=%d,us=%d\n",ss,us);
ss=us1;
printf("
(2)us1=%d,ss=%d\n",us1,ss);
ss=us2;
printf("(3)us2=%d,ss=%d\n\n",us2,ss);
return0;
}
14、赋予八进制数输出
#include
intmain()
{
unsignedcharc;
c=0362;
printf("%d\n\n",c);
return0;
}
15、汉诺塔游戏的递归算法
/*例4.10*/
#include
hanoi(intn,chara,charb,charc);
intmain()
{
intn;
printf("*************************************\n");
printf("*Programforsimulatingthesolution*\n");
printf("**ofthegameof'towerofHanoi'**\n");
printf("*************************************\n");
printf("Pleaseenterthenumberofdiskstobemoved:
");
scanf("%d",&n);
printf("\n");
hanoi(n,'a','b','c');
printf("\n\n");
return0;
}
hanoi(intn,chara,charb,charc)
{
if(n>0)
{
hanoi(n-1,a,c,b);
printf("Movedisc%dfrompile%cto%c\n",n,a,b);
hanoi(n-1,c,b,a);
}
}
16
(1)、计算平方根(原始方法)
#include
#include
intmain()
{
floatx,y;
printf("请输入一个正实数:
");
scanf("%f",&x);
y=sqrt(x);
printf("%f的平方根是%f\n\n",x,y);
return0;
}
(2)计算平方根
/******例3.19用牛顿迭代法******/
#include
#defineE00.00005/*定义误差限*/
doublesq_root(doublea)/*计算a的平方根*/
{
doublex;
x=a;/*赋初值*/
x=0.5*(x+a/x);/*所要建立的迭代关系式*/
while(fabs(x*x-a)>=E0)/*循环结构的控制条件(表示误差)*/
x=0.5*(x+a/x);
return(x);
}
#include
intmain()
{
doublef;
printf("请输入一个正实数:
");
scanf("%lf",&f);
printf("Therootof%fis%f\n\n",f,sq_root(f));
return0;
}
(3)计算平方根
(2)
/*例3.19*/
#include
#defineE00.00005
doublesq_root(doublea)
{
doublex;
x=a;
do
x=(x+a/x)*0.5;
while(fabs(x*x-a)>=E0);
return(x);
}
#include
intmain()
{
doublef;
printf("请输入一个正实数:
");
scanf("%lf",&f);
printf("Therootof%fis%f\n\n",f,sq_root(f));
return0;
}
17、计算人口增长
/******例3.17******/
#include
intmain()
{
doublem=13;
inti;
for(i=1;i<=10;i++)
{
m=m*(1+0.002);
printf("Populationafter%dyearsis%f\n",i,m);
}
return0;
}
18、交换两个变量的值
/*例4.8*/
#include
swap();/*说明函数*/
inta=3,b=5;/*声明外部变量*/
intmain()
{
swap();
printf("a=%d,b=%d\n\n",a,b);
return0;
}
swap()
{
intc;/*声明自动变量*/
c=a;a=b;b=c;/*交换变量的值*/
}
19、九九乘法表
#include
intmain()
{
inti,j;
for(i=1;i<=9;i++)
printf("%4d",i);
printf("\n");
for(i=1;i<=39;i++)
printf("%c",'-');
printf("\n");
for(i=1;i<=9;i++)
{
for(j=1;j<=9;j++)
printf("%4d",i*j);
printf("\n");
}
return0;
}
20、累加和的值
#include
intsigma(intn)
{
inti,sum=0;
for(i=0;i<=n;i++)
{
sum=sum+i;
}
returnsum;
}
intmain()
{
intm,total;
printf("输入m的值,将输出前m个正整数相加的和:
\n");
scanf("%d",&m);
total=sigma(m);
printf("这前m个正整数累加和的值是%d\n\n",total);
return0;
}
21、冒泡排序法
/*例5.4冒泡排序法*/
#include
#defineN8
intmain()
{
inta[N]={9,8,3,7,5,2,6,1};
inti,j,temp;
/*冒泡排序*/
for(j=0;j{
for(i=0;iif(a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
/*输出结果*/
printf("\n排序结果:
");
for(i=0;iprintf("%3d",a[i]);
printf("\n\n");
return0;
}
22、求10!
#include
main()
{
inti,sum=1;
for(i=1;i<=10;i++)
sum=sum*i;
printf("10!
=%d\n\n",sum);
}
23、求一个数的阶乘
#include
#include
longrfact(intn)
{
if(n<0)
{
printf("Negativeargumenttofact!
\n\n");
exit(-1);
}
if(n<=1)
return
(1);
else
return(n*rfact(n-1));
}
intmain()
{
inta;
printf("Inputanumber:
");
scanf("%d",&a);
printf("%d!
=%ld\n\n",a,rfact(a));
return0;
}
24、求一个数的正弦值
#include
#include
main()
{
floatx;
x=sin(0.19199);
printf("%f\n\n",x);
}
25、求圆的面积和周长
#include
#definePI3.141592654/*定义符号常数*/
#defineR2.0
doublecalcuArea(doubler)/*计算圆面积*/
{
return(PI*r*r);
}
doublecalcuCircum(doubler)/*计算圆周长*/
{
return(2.0*PI*r);
}
intmain()
{
printf("area=%f",calcuArea(R));
printf("\tcircumference=%f\n\n",calcuCircum(R));
return0;
}
26、使用带参数的宏定义计算圆周长和面积
#include
#definePI3.14159265
#defineCIRCUM(r)(2.0*PI*(r))
#defineAREA(r)(PI*(r)*(r))
intmain()
{
doubler;
printf("Inputaradius:
");
scanf("%lf",&r);
printf("Thecircumis%fandareais%f\n\n",CIRCUM(r),AREA(r));
return0;
}
27、使用宏定义的圆周长和面积的计算
#include
#definePI3.14159265
#defineRADIUS1.0
#defineCIRCUMreturn(2.0*PI*RADIUS);
#defineAREAreturn(PI*RADIUS*RADIUS);
doublecircum()
{
CIRCUM
}
doublearea()
{
AREA
}
intmain()
{
printf("Thecircumis%fandareais%f\n\n",circum(),area());
return0;
}
28、输出100-200之间的所有素数
/*例3.26*/
#include
intmain()
{
intm,n,flag;
printf("Theprimersfrom100to200is:
\n");
for(n=101;n<=200;n+=2)/*仅测试100-200之间的奇数*/
{
flag=1;/*设置标志*/
for(m=2;m<=n/2;m++)
{
if(n%m==0)
{
flag=0;/*改变标志*/
break;/*跳出内层循环结构*/
}
}
if(flag==0)/*判断标志*/
continue;/*跳出输出语句而进入下一周期*/
printf("%d",n);
}
printf("\n\n");
return0;
}
29、输出字符≥
#include
intmain()
{
charch;
ch='\076';/*将八进制数076的ASCII字符赋给ch*/
printf("%c\n\n",ch);
return0;
}
30、输出最大的数
#include"stdio.h"
main()
{
floatx,y,z;
floatm,n;
printf("唔该输入三个数吖老细:
\n");
scanf("%f%f%f",&x,&y,&z);
if(x>y)
m=x;
else
m=y;
if(m>z)
n=m;
printf("这三个数中最大的数是%f\n\n",n);
}
31、输入的字符原样输出
/*例3.21*/
#include
intmain()
{
intc;
while((c=getchar())!
=EOF)
putchar(c);
return0;
}
32、输入多个数后输出最大者
/*例3.20*/
#include
#defineFLAG-32768
intmain()
{
intmax,n;
printf("Inputanumber:
");
scanf("%d",&n);
max=n;
while(n!
=FLAG)
{
printf("Inputnextnumber:
");
scanf("%d",&n);
if(n>max)
max=n;
}
printf("Themaxis%d\n\n",max);
return0;
}
33、输入多个数后输出最大者
(2)
/*例3.20*/
#include
#defineFLAG-32768
intmain()
{
intmax=-32768,n;
do
{
printf("Inputanumber:
");
scanf("%d",&n);
if(n>max)
max=n;
}while(n!
=FLAG);
printf("Themaxis%d\n\n",max);
return0;
}
34、输入正数以0作为结束标志并求正数的和
#include
main()
{
inti,sum=0;
printf("请输入一批正数并以0结束:
\n");
do{scanf("%d",&i);
sum=sum+i;}
while(i!
=0);
printf("这些正数之和为%d\n\n",sum);
}
35、顺序查找一个学