五邑大学C语言 编程题代码.docx
- 文档编号:28941174
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:38
- 大小:22.39KB
五邑大学C语言 编程题代码.docx
《五邑大学C语言 编程题代码.docx》由会员分享,可在线阅读,更多相关《五邑大学C语言 编程题代码.docx(38页珍藏版)》请在冰豆网上搜索。
五邑大学C语言编程题代码
第三章编程题
1.
#include
intmain()
{
floatx,y;
printf("Enterx:
");
scanf("%f",&x);
if(x<5)y=(x>=0?
x:
-x);
elseif(x<20)y=3*x*x-2*x+1;
elsey=x/5;
printf("x=%f,y=%f\n",x,y);
return0;
}
2.
#include
#include
intmain()
{
inta,b,c;
doubledelta,p,q;
printf("请输入一元二次方程的系数a,b,c:
");
scanf("%d%d%d",&a,&b,&c);
delta=b*b-4*a*c;
p=-(double)b/(2*a);
q=sqrt(fabs(delta))/(2*a);
if(delta>=0)
printf("\nx1=%f\nx2=%f\n",p+q,p-q);
else
{
printf("\nx1=%f+i%f",p,q);
printf("\nx2=%f-i%f\n",p,q);
}
return0;
}
3.
#include
intmain()
{
intp,q;//q为转换点
floats,tax;
printf("Pleaseenters(工资额):
");
scanf("%f",&s);
q=(int)s/1000;
switch(q)
{case0:
p=0;break;
case1:
p=5;break;
case2:
case3:
case4:
p=8;break;
case5:
case6:
case7:
p=15;break;
default:
p=20;
}
tax=s*p/100;
s=s-tax;
printf("纳税款:
%5.0f\n",tax);
printf("实得工资数:
%5.0f\n",s);
return0;
}
4.
#include
intmain()
{
inti,j,k,sum=0;
for(i=1;i<=99;i+=2)
j=i+1,k=i+2,sum=sum+i*j*k;
printf("1*2*3+3*4*5+…+99*100*101=%d\n",sum);
return0;
}
5.
#include
intmain()
{
doublee=1.0;
doubleu=1.0;
intn=1;
while(u>=1.0e-6)
{
u=u/n;
e=e+u;
n=n+1;
}
printf("e=%f(n=%d)\n",e,n);
return0;
}
6.
#include
intmain()
{
inti,t,sign=1,m=2,n=1;//sign用于设置正负号,m代表分母,n代表分子
doubleu,sum=0;
for(i=1;i<=20;i++)
{
u=sign*1.0*m/n;//or:
u=sign*(double)m/n;
sum=sum+u;
sign=-sign;//每次循环改变一次正负号
t=m,m=m+n,n=t;
//当前的分子分母之和是后一项的分子,当前的分子是后一项的分母
}
printf("sum=%f\n",sum);
return0;
}
7.
//水仙花数
/*
//方法一
#include
intmain()
{intg,s,b;//分别代表个位、十位、百位上的数码
for(b=1;b<=9;b++)//百位上的数码由1变到9
for(s=0;s<=9;s++)//十位上的数码由1变到9
for(g=0;g<=9;g++)//个位上的数码由1变到9
if(g*g*g+s*s*s+b*b*b==g+s*10+b*100)
printf("%d\n",g+s*10+b*100);
return0;
}
//方法二
#include
intmain()
{intg,s,b;//分别代表个位、十位、百位上的数码
intx;//x代表一个3位整数
for(x=100;x<=999;x++)
{b=x/100;
s=(x-b*100)/10;
g=x%10;
if(g*g*g+s*s*s+b*b*b==x)
printf("%d\n",x);
}
return0;
}
*/
//方法三:
移位求余得数码
#include
intmain()
{intg,s,b;//分别代表个位、十位、百位上的数码
intx,y;//x代表一个3位整数
for(x=100;x<=999;x++)
{y=x;
g=y%10;
s=(y=y/10)%10;
b=(y=y/10)%10;
if(g*g*g+s*s*s+b*b*b==x)
printf("%d\n",x);
}
return0;
}
8.
//方法一
#include
intmain()
{intnum=0,g,s,b;//g,s,b分别代表个位、十位、百位上的数码(1000肯定不符合要求)
for(b=1;b<=9;b++)//百位上的数码由1变到9
for(s=0;s<=9;s++)//十位上的数码由1变到9
for(g=0;g<=9;g++)//个位上的数码由1变到9
if(g+s+b==11)
{
printf("%d",g+s*10+b*100);
num++;
}
printf("\ntotal:
%d\n",num);
return0;
}
/*
//方法二:
移位求余得数码
#include
intmain()
{intg,s,b;//分别代表个位、十位、百位上的数码
intnum=0,x,y;//x代表一个3位整数
for(x=100;x<=999;x++)
{y=x;
g=y%10;
s=(y=y/10)%10;
b=(y=y/10)%10;
if(g+s+b==11)
{
printf("%d",x);
num++;
}
}
printf("\ntotal:
%d\n",num);
return0;
}*/
9.
//方法1——三重循环
#include
intmain()
{
intd10,d5,d1;//分别代表10元、5元和1元纸币的数量
intnum=0;
for(d10=1;d10<=9;d10++)
for(d5=1;d5<=19;d5++)
for(d1=1;d1<=48;d1++)
if((d1+d5+d10==50)&&(10*d10+5*d5+d1==100))
{
num++;
printf("1元纸币数:
%d\n",d1);
printf("5元纸币数:
%d\n",d5);
printf("10元纸币数:
%d\n",d10);
}
printf("\n共有%d种兑换方案\n",num);
return0;
}
/*
//方法2——二重循环
#include
intmain()
{
intd10,d5,d1;//分别代表10元、5元和1元纸币的数量
intnum=0;
for(d10=1;d10<=9;d10++)
for(d5=1;d5<=19;d5++)
{
d1=50-d10-d5;
if(d1!
=0&&(10*d10+5*d5+d1==100))
{
num++;
printf("1元纸币数:
%d\n",d1);
printf("5元纸币数:
%d\n",d5);
printf("10元纸币数:
%d\n",d10);
}
}
printf("\n共有%d种兑换方案\n",num);
return0;
}*/
10.
#include
intmain()
{
intm,s,i;
for(m=2;m<1000;m++)
{
s=0;//s用于存储因子之和
for(i=1;i if((m%i)==0)s=s+i; if(s==m) { printf("\n%disa完数\n",m); printf("it'sfactorsare: "); for(i=1;i if(m%i==0)printf("%d",i); printf("\n"); } } return0; } 11. #include intmain() { intmin,i; for(i=1;i>=0;i++);//空循环 min=i; printf("min: %d\n",min); printf("max: %d\n",-(min+1)); return0; } 12. //方法1 #include intmain() { //用n记录鞭炮声的次数,用t记时(秒),每秒监测鞭炮声 //a1,b1,c1统计每人已放鞭炮数,a2,b2,c2记录当前放鞭炮的状态(值1表示放鞭炮状态) intt=1,n=1,num; inta1=1,b1=1,c1=1,a2,b2,c2; printf("请输入每人的鞭炮数: "); scanf("%d",&num); while(c1 { if(t%5==0&&a1 elsea2=0; if(t%6==0&&b1 elseb2=0; if(t%7==0&&c1 elsec2=0; if(a2==1||b2==1||c2==1)n++; t++; } printf("一共能听到%d次鞭炮声\n",n); return0; } /* //方法2——分时间段统计 #include intmain() { //用n记录鞭炮声的次数,用t记时(秒),每秒监测鞭炮声 intt,n=1,num; printf("请输入每人的鞭炮数: "); scanf("%d",&num); for(t=1;t<=(num-1)*5;t++) if(t%5==0||t%6==0||t%7==0)n++; for(;t<=(num-1)*6;t++) if(t%6==0||t%7==0)n++; for(;t<=(num-1)*7;t++) if(t%7==0)n++; printf("一共能听到%d次鞭炮声\n",n); return0; } */ 第四章编程题 1. #include intmain() { inthcf(int,int);//求最大公约数的函数 intlcd(int,int,int);//求最小公倍数的函数 intu,v,h,l; printf("请输入两个整数: "); scanf("%d%d",&u,&v); h=hcf(u,v); l=lcd(u,v,h); printf("它们的最大公约数是%d\n",h); printf("它们的最小公倍数是%d\n",l); return0; } inthcf(intu,intv) { intt,r; if(v>u)t=u,u=v,v=t; while((r=u%v)! =0)u=v,v=r;//辗转相除法 returnv; } intlcd(intu,intv,inth) {return(u*v/h);} 2. #include constdoublePI=3.14159; doublegirth(doubler)//计算圆周长 { returnr*2*PI; } doublearea(doubler)//计算圆面积 { returnr*r*PI; } intmain() { doubler; printf("请输入半径(r): "); scanf("%lf",&r); printf("圆周长: %f\n",girth(r)); printf("圆面积: %f\n",area(r)); return0; } 3. #include intintcat(intx,inty) { intn=10,z=y; while(y=y/10)n=n*10; z=x*n+z; returnz; } intmain() { intx,y; printf("Enterx,y: "); scanf("%d%d",&x,&y); printf("Thenewnumberis%d\n",intcat(x,y)); return0; } 4. #include intmain() { doublegetPower(intx,inty);//函数声明 intx,y; printf("Enterx,y: "); scanf("%d%d",&x,&y); printf("%d^%d=%f\n",x,y,getPower(x,y)); return0; } doublegetPower(intx,inty) { doublef; if(y==1)f=x; elsef=x*getPower(x,y-1); returnf; } 5. #include intmain() { intreverse(intn);//函数声明 intn; printf("Entern: "); scanf("%d",&n); printf("Thenewnumberis%d\n",reverse(n)); return0; } intreverse(intn) { intsign=1,k=0; if(n<0)n=-n,sign=-1; do { k=k*10+n%10;n/=10; }while(n); returnsign*k; } 6. #include #include intmain() { floatTriangleArea(floata,floatb,floatc);//函数声明 floata,b,c,area; printf("输入三角形三边a,b,c: "); scanf("%f%f%f",&a,&b,&c); area=TriangleArea(a,b,c); if(area==-1) printf("(%f,%f,%f)不能构成三角形! \n",a,b,c); else printf("三角形(%f,%f,%f)面积为: %f\n",a,b,c,area); return0; } floatTriangleArea(floata,floatb,floatc) { floats; if((a+b<=c)||(a+c<=b)||(b+c<=a))return-1; s=(a+b+c)/2; returnsqrt(s*(s-a)*(s-b)*(s-c)); } 7. #include #include intmain() { doublefac(int);//函数声明 doubles=1.0,u=1.0; intx,n=1; printf("Enterx: "); scanf("%d",&x); while(u>=1.0e-6) { u=pow(x,n)/fac(n);//调用系统函数和自定义函数 s=s+u; n=n+1; } printf("e^%d=%f\n",x,s); return0; } //求n! 的函数(递推算法) doublefac(intn) { doublef=1; if(n>0) for(;n>1;n--)f=f*n;//求n! elseif(n==0)f=1;//0! 的值为1 elseif(n<0)f=-1;//如果n为负数,则返回-1,表示错误 returnf; } 第五章编程题 1. #include #defineM3 #defineN4 /* //方法一 intmain() { inta[M][N]={1,2,3,4,5,6,7,8,9,10,11,12}; intsum=0,i,j; for(i=0;i for(j=0;j sum=sum+a[i][j]; printf("arr_sum=%d\n",sum); return0; } */ //方法二 intmain() { intarr_sum(intarr[M][N]);//函数声明 inta[M][N]={1,2,3,4,5,6,7,8,9,10,11,12}; printf("arr_sum=%d\n",arr_sum(a)); return0; } intarr_sum(intarr[M][N]) { intsum=0,i,j; for(i=0;i for(j=0;j sum=sum+arr[i][j]; returnsum; } 2. #include #defineN3 intmain() { intarr_xsum(intarr[N][N]);//函数声明 inta[N][N]={1,2,3,4,5,6,7,8,9}; inti,j; //输出数组元素 for(i=0;i { for(j=0;j printf("\n"); } printf("\narr_xsum=%d\n",arr_xsum(a)); return0; } intarr_xsum(intarr[N][N]) { inti,sum=0; for(i=0;i sum=sum+arr[i][i]+arr[i][N-1-i]; if(N%2)sum=sum-arr[(N-1)/2][(N-1)/2];//若为奇数项数组 returnsum; } 3. #include #defineN3 intmain() { voidconvert_array(intarr[N][N]);//函数声明 inta[N][N]={1,2,3,4,5,6,7,8,9}; inti,j; printf("\nTheoriginalarray: \n"); for(i=0;i { for(j=0;j printf("\n"); } convert_array(a);//函数调用 printf("\nTheconvertedarray: \n"); for(i=0;i { for(j=0;j printf("\n"); } return0; } voidconvert_array(intarr[N][N]) { inti,j,t; for(i=0;i for(j=i+1;j { t=arr[i][j]; arr[i][j]=arr[j][i]; arr[j][i]=t; } } 4. #include intmain() { intbinary(intv[],intn,intx);//函数声明(折半查找函数) inti,v[10],x,find=-1; printf("按由小到大的顺序输入10个整数: \n"); for(i=0;i<10;i++) scanf("%d",&v[i]); printf("Enterxtolookfor: "); scanf("%d",&x); find=binary(v,10,x);//折半查找 if(find! =-1) printf("%dbeenfound.Itspositionis%d\n",x,find+1); else printf("无此数\n"); return0; } //用折半查找法,在数组v(长度为n)中查找x intbinary(intv[],intn,intx) { intlow,high,mid,find=-1;//find=-1表示未找到 low=0;high=n-1; while(low<=high) { mid=(low+high)/2; if(x elseif(x>v[mid])low=mid+1; else{find=mid;break;} } returnfind; } 5. #include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 五邑大学C语言 编程题代码 大学 语言 编程 代码
![提示](https://static.bdocx.com/images/bang_tan.gif)