西工大C语言程序作业_第1页
西工大C语言程序作业_第2页
西工大C语言程序作业_第3页
西工大C语言程序作业_第4页
西工大C语言程序作业_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2季:循环第1题Title完全数Time Limit1000MSMemory Limit10000KBDescription一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。请编写程序,找出1000之内的所有完数。InputOutput每行按格式输出其因子:6=1+2+3Sample InputSample Output6=1+2+328=1+2+4+7+14496=1+2+4+8+16+31+62+124+2481.完全数#include<stdio.h>int main

2、()int m,i,j,s;for(m=6;m<1000;m+)s=1;for(i=2;i<m;i+)if(m%i=0) s=s+i;if(m-s=0)printf("%5d its fastors are 1 ",m);for(j=2;j<m;j+) if(m%j=0)printf("%d ",j);printf("n");第2题Title迭代求根Time Limit1000MSMemory Limit10000KBDescriptionInput输入a为实型Output输出根为实型,保留五位小数。Sample I

3、nput2Sample Output1.414212.迭代求根#include<stdio.h>#include<math.h>int main()float x0,x1,a;scanf("%f",&a);x1=a/2;dox0=x1;x1=(x0+a/x0)/2;while(fabs(x0-x1)>=0.00001);printf("%.5fn",x1);return 0;第3题Title二分求根Time Limit1000MSMemory Limit10000KBDescription请编写程序,用二分法求下面方

4、程在(10,10)之间的根:Input输入区间数据为实型、用空格隔开输出均。Output输出根为实型,保留两位小数。Sample Input-10 10Sample Output2.003.二分求根#include<stdio.h>#include<math.h>int main() float x0,x1,x2,f0,f1,f2; printf("请输入x1,x2的值:"); scanf("%f%f",&x1,&x2); f1=2*x1*x1*x1-4*x1*x1+3*x1-6; f2=2*x2*x2*x2-4*

5、x2*x2+3*x2-6; do x0=(x1+x2)/2; f0=2*x0*x0*x0-4*x0*x0+3*x0-6; if(f0*f1<0) x2=x0;f2=f0; else x1=x0; f1=f0; while(fabs(f0)>=1e-5); printf("方程的根为:%.2fn",x0); return 0;第4题TitleVOL大学乒乓球比赛Time Limit1000MSMemory Limit10000KBDescriptionVOL大学有两个乒乓球队进行比赛,各出3人。甲队为A、B、C三人,乙队为X、Y、Z三人,已抽签决定比赛名单,有人向

6、队员打听比赛的名单,A说他不和X比,C说他不和X、Z比,请编写程序找出3对赛手的名单。InputOutput输出赛手名单,一行一对。Sample InputSample OutputA=ZB=XC=Y4.VOL大学乒乓球比赛#include<stdio.h>int main() char i,j,k; for(i='X'i<='Z'i+) for(j='X'j<='Z'j+) if(i!=j) for(k='X'k<='Z'k+) if(i!=k&&j!

7、=k) if(i!='X'&&k!='X'&&k!='Z') printf("A=%cnB=%cnC=%cn",i,j,k); return 0; 第5题Title两个整数之间所有的素数Time Limit1000MSMemory Limit10000KBDescription编写程序,求任意两个整数之间所有的素数。Input输入两个整数,用空格间隔。注意输入的两个整数谁大谁小是任意的。Output输出数据占一行,用空格间隔。Sample Input100 130Sample Output101

8、 103 107 109 113 1275.两个整数之间所有的素数#include <stdio.h>#include <math.h>int main()int m,n,a,i,t;scanf("%d%d",&m,&n);if(m>n) t=m; m=n; n=t;for(a=m;a<=n;a+)for(i=2;i<=sqrt(a);i+)if(a%i=0)break;if(i>sqrt(a)printf("%d ",a);printf("n");return 0;第6

9、题Title奇特的分数数列Time Limit1000MSMemory Limit10000KBDescription有一个分数数列:求出这个数列前20项之和。InputOutput输出保留六位小数。Sample InputSample Output32.6602616.奇特的分数数列#include<stdio.h>int main()int i,x,y,a; float sum=0; x=2; y=1; for(i=1;i<=20;i+) sum+=(float)(x)/y; / printf("%d/%dn",x,y); a=x; x=x+y; y=

10、a; printf("%.6fn",sum); return 0; 第7题Title你会存钱吗?Time Limit1000MSMemory Limit10000KBDescription假设银行整存整取存款不同期限的月息利率分别为:利息=本金*月息利率*12*存款年限。现在某人手中有2000元钱,请通过计算选择一种存钱方案,使得钱存入银行20年后得到的利息最多(假定银行对超过存款期限的那一部分时间不付利息)。InputOutput输出第1行为8年、5年、3年、2年、1年的存款方案(各利率存款次数),用空格隔开。输出第2行为最大收益。Sample InputSample O

11、utput0 4 0 0 08841.017.你会存钱吗?#include<stdio.h>#include<math.h>int main()int i8,i5,i3,i2,i1,n8,n5,n3,n2,n1;float max=0,term;for(i8=0;i8<3;i8+) /*穷举所有可能的存款方式*/for(i5=0;i5<=(20-8*i8)/5;i5+)for(i3=0;i3<=(20-8*i8-5*i5)/3;i3+)for(i2=0;i2<=(20-8*i8-5*i5-3*i3)/2;i2+)i1=20-8*i8-5*i5-3

12、*i3-2*i2;term=2000.0*pow(double)(1+0.0063*12), (double)i1)*pow(double)(1+2*0.0063*12), (double)i2)*pow(double)(1+3*0.0069*12),(double)i3)*pow(double)(1+5*0.0075*12),(double)i5)*pow(double)(1+8*0.0084*12),(double)i8);/*计算到期时的本利合计*/这句话不怎么理解 请问下这句该怎么理解if(term>max) max=term;n1=i1; n2=i2; n3=i3; n5=i5

13、; n8=i8; printf("%d %d %d %d %dn",n8,n5,n3,n2,n1);printf("%.2fn",max);/*输出存款方式*/return 0;第8题Title整数位数Time Limit1000MSMemory Limit10000KBDescription编写程序输入一个数,输出其整数部分的位数(例如输入123.4则输出3,输入0.6则输出0)。Input输入为实型。Output输出为整型。Sample Input123.4Sample Output38.整数位数#include<stdio.h>int

14、main() int x,n=0; float c=2.0; scanf("%f",&c); x=int(c); while(x!=0) n+; x=x/10; printf("%dn",n); return 0;第9题TitleTime Limit1000MSMemory Limit10000KBDescription编写程序利用下面公式计算的近似值:InputOutput输出为实型,保留六位小数。Sample InputSample Output3.1415919.计算的近似值#include<stdio.h>#include&l

15、t;math.h>int main()int a=1,f=1;double p=0; while(fabs(1.0/a)>=1e-6) p=p+1.0/a*f; a=a+2; f=-f; printf("pi=%.6lfn",4*p); return 0;第10题Title级数和Time Limit1000MSMemory Limit10000KBDescription编写程序求下面级数前n项的和,其中n从键盘上输入。Input输入n为整型。Output输出和为实型,保留六位小数。Sample Input5Sample Output0.33846210.级数和#

16、include<stdio.h>#include<math.h>int main() int i,n; double s=0;scanf("%d",&n); for(i=1;i<=n;i+) s=s+pow(-1,i-1)*pow(2,i)/(pow(2,i)+pow(-1,i)/(pow(2,i+1)+pow(-1,i+1); printf("s=%.6lfn",s); return 0;第11题Title区间内素数Time Limit1000MSMemory Limit10000KBDescription编写程序

17、计算500800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,再计算其间隔减、加之和,即第1个素数第2个素数+第3个素数第4个素数+第5个素数的值sum。InputOutput一行内输出cnt和sum,用空格隔开。Sample InputSample Output44 13011.区间内素数#include<stdio.h>#include<math.h>int main() int i,n; double s=0;scanf("%d",&n); for(i=1;i<=n;i+) s=s+pow(-1,i-1)*pow(2,i

18、)/(pow(2,i)+pow(-1,i)/(pow(2,i+1)+pow(-1,i+1); printf("s=%.6lfn",s); return 0;第12题Title自然数立方的乐趣Time Limit1000MSMemory Limit10000KBDescription编写程序验证下列结论:任何一个自然数n的立方都等于n个连续奇数之和。例如:要求程序对每个输入的自然数计算并输出相应的连续奇数。Input输入自然数n为整数。Output输出n个连续奇数之和,格式如Sample Output显示。Sample Input5Sample Output5*5*5=125

19、=21+23+25+27+2912.自然数立方的乐趣#include<stdio.h>int main() int n,i,j,s,k; scanf("%d",&n); for(i=1;i<=n*n*n;i=i+2) s=0;k=0; for(j=i;j<=n*n*n;j=j+2) s=s+j; k+; if(s=n*n*n) break; if(s=n*n*n && k=n) break; printf("%d*%d*%d=%d=%d",n,n,n,n*n*n,i); for(i=i+2;i<=j;

20、i=i+2) printf("+%d",i);return 0;第13题Title最次方数Time Limit1000MSMemory Limit10000KBDescription编写程序求一个整数的任意次方的最后三位数。即:Input输入均为整型,首先为x,其后为a,用空格隔开。Output输出为整型。Sample Input13 13Sample Output25313.最次方数#include<stdio.h>int main() int x,a,i,t; scanf("%d%d",&x,&a); t=1; for(i

21、=0,t=1;i<a;i+) t=t*x; t=t%1000; printf("%.3dn",t); return 0;第14题Title多项式的猜想Time Limit1000MSMemory Limit10000KBDescriptionInputOutput输出三行对应的n值。Sample InputSample Output691114.多项式的猜想#include<stdio.h>int main() int s1=2,i,j=2,s2=0,m=100,a1=1,a2=1,a3,t; for(i=1;i<=3;i+) if(i=2) m=1000; if(i=3) m=10000; while(!(s1<m &

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论