西工大C语言程序作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2季:循环
第1题
Title 完全数
Time
Limit
1000MS
Memor
y Limit
10000KB
Descrip tion 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。请编写程序,找出1000之内的所有完数。
Input
Output 每行按格式输出其因子:6=1+2+3 Sample
Input
Sample Output 6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248
1.完全数
#include
{int m,i,j,s;
for(m=6;m<1000;m++)
{s=1;
for(i=2;i if(m%i==0) s=s+i; if(m-s==0) {printf("%5d its fastors are 1 ",m);for(j=2;j } } 第2题 Title 迭代求根 Time 1000MS Limit 10000KB Memor y Limit Descrip tion Input 输入a为实型 Output 输出根为实型,保留五位小数。Sample 2 Sample 1.41421 Output 2.迭代求根 #include #include int main() { float x0,x1,a; scanf("%f",&a); x1=a/2; do { x0=x1;x1=(x0+a/x0)/2; } while(fabs(x0-x1)>=0.00001); printf("%.5f\n",x1); return 0; } 第3题 Title 二分求根Time 1000MS Memor y Limit 10000KB Descrip tion 请编写程序,用二分法求下面方程在(-10,10)之间的根: Input 输入区间数据为实型、用空格隔开输出均。 Output 输出根为实型,保留两位小数。Sample Input -10 10 Sample Output 2.00 3.二分求根 #include #include 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*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("方程的根为:%.2f\n",x0); return 0; } 第4题 Title VOL大学乒乓球比赛Time 1000MS Limit 10000KB Memor y Limit Descrip tion VOL大学有两个乒乓球队进行比赛,各出3人。甲队为A、B、C三人,乙队为X、Y、Z三人,已抽签决定比赛名单,有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比,请编写程序找出3对赛手的名单。 Input Output 输出赛手名单,一行一对。Sample Input Sample Output A=Z B=X C=Y 4.VOL大学乒乓球比赛#include 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!=k) { if(i!='X'&&k!='X'&&k!='Z') printf("A=%c\nB=%c\nC=%c\n",i,j,k); } } } return 0; } 第5题 Title 两个整数之间所有的素数Time Limit 1000MS Memor y Limit 10000KB Descrip tion 编写程序,求任意两个整数之间所有的素数。 Input 输入两个整数,用空格间隔。注意输入的两个整数谁大谁小是任意的。 Output 输出数据占一行,用空格间隔。Sample 100 130