作业四
Posted 王国宇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作业四相关的知识,希望对你有一定的参考价值。
一.
实验要求:
编写程序,输入一个整数x,按照下式输出对应的y值。
代码:
# include <stdio.h> int main () { int z,x,y=0; printf("请您输入一个整数\\n"); scanf("%d",&z); if(z<=0) { printf("输入错误\\n"); } if(z%2!=0) { for(x=1;x<=z;x=x+2) { y=y+x; } } else if(z%2==0) { for(x=2;x<=z;x=x+2) { y=y+x; } } printf("输出您的答案,结果为%d\\n",y); return 0; }
截图:
二.
实验要求:
编程求1-1/2+1/3-1/4+1/5- … +1/99-1/100,结果保留两位小数。
代码:
# include <stdio.h> int main() { int z; float x=1,y=0; for (z=1;z<=100;z++) { if(z%2==0) { x=-1.0/(float)z; } else if(z%2!=0) { x=1.0/(float)z; } y=y+x; } printf("算式1-1/2+1/3-1/4+1/5- … +1/99-1/100的结果为%0.2f",y); return 0; }
截图:
三.
实验要求:
输出2000年至3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年。
代码:
# include<stdio.h> int main() { int x,z=0; for (x=2000;x<=3000;x++) { if((x%4==0&&x%100!=0)||(x%400==0)) { { printf(" %d",x); z=z+1; } if(z%10==0) { printf("\\n"); } } } printf("\\n 在2000年至3000年,一共有%d个闰年",z); return 0; }
截图:
四.
实验要求:
输入一个实数x和一个整数m,计算xm,不允许调用pow()函数。
代码:
#include <stdio.h> int main() { float n,sum=1; int x,y; printf("ÇëÊäÈëÒ»¸öʵÊýºÍÒ»¸öÕûÊý,²¢Ó㬺Ÿô¿ª£¬Ç°ÕßΪʵÊý£¬ºóÕßΪÕûÊý\\n"); scanf("%f,%d",&n,&x); if(x==0) { printf("Êä³öÄúµÄ½á¹ûΪ1"); } else if(x>0) { for(y=1;y<=x;y++) { sum=sum*n; } printf("Êä³öÄúµÄ½á¹ûΪ%f\\n",sum); } else if(x<0) { for(y=1;y<=-x;y++) { sum=sum*n; } sum=1/(float)sum; printf ("Êä³öÄúµÄ½á¹ûΪ%f\\n",sum); } return 0; }
截图:
五.
实验要求:
输入一串字符,分别统计其中字母、空格、数字和其他字符的个数。
代码:
#include <stdio.h> int main() { int m=0,n=0,o=0,p=0; char a; printf("请输入任意一段字符。分别统计其中的字母、空格、数字和其他字符的个数\\n"); do { scanf("%c",&a); if(a==\'\\n\') { break; } else if(a>=\'1\'&&a<=\'9\') { m++; } else if(a>=\'A\'&&a<=\'Z\'||a>=\'a\'&&a<=\'z\') { n++; } else if(a==\' \') { o++; } else { p++; } }while(a!=\'\\n\'); printf("数字的数目是:%d\\n", m); printf("字母的数目是:%d\\n", n); printf("空格的数目是:%d\\n", o); printf("其他字符的数目是:%d\\n", p); return 0; }
截图:
六.
实验要求:
输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值
代码:
# include <stdio.h> int main() { int a,x=0,y=0,m=0,n=0; printf("请随意输入一批数,输完一个,回车隔开,输入0结束回车:\\n"); scanf("%d",&a); while(a!=0) { if(a>0) { x=x+a; m++; } else if(a<0) { y=y+a; n++; } scanf("%d",&a); } if(m==0) { if(n==0) { printf("正数的平均值为0,负数的平均值为0\\n"); } else if(n!=0) { printf("正数的平均值为0,负数的平均值为%.2f\\n",(double)y/n); } } else if(m!=0) { if(n==0) { printf("正数的平均值为%.2f,负数的平均值为0\\n",(double)x/m); } else if(n!=0) { printf("正数的平均值为%.2f,负数的平均值为%.2f\\n",(double)x/m,(double)y/n); } } return 0; }
截图:
七.
实验要求:
输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
代码:
# include <stdio.h> # include <math.h> int main() { float a; int m,n=0,x,flag; for(m=2;m<=1000;m++) { flag=0; a=sqrt(m); for(x=2;x<=a;x++) { if(m%x==0) { flag=1; break; } } if(flag==0) { printf(" %03d",m); n++; if(n%10==0&&n!=0) { printf("\\n"); } } } printf("\\n在一千以内一共有%d个素数\\n",n); return 0; }
截图:
八
实验要求:
打印下列图形
代码:
#include<stdio.h> int main() { int x,n; for(x=1;x<=5;x=x+1) { for(n=1;n<=x-1;n=n+1) printf(" "); for(n=1;n<=11-2*x;n=n+1) printf("*"); printf("\\n"); } return 0; }
截图:
本次知识点总结:
1.几种关于循环的方法以及循环的嵌套。
2.do while至少执行一次循环,而while可以一次都不执行循环。
3.循环中,break指结束循环,执行循环体后面的语句,continue是跳过循环体中剩余的语句,执行下一次循环。
4.for,if,while后面不必加分号。
5.累加求和问题注意和要初始化为0。累乘求和问题注意 乘积要初始化为1。
6.goto语句指无条件转向语句标号处执行,但不推荐此方法。
本次实验总结:
1.不同的题目合理运用不同的循环方式。
2.注意开始循环时变量的初始值。
3.与前面的输出隔出位置用“ ”,回车用“\\n”。
4.输出十个一换行,用次数和10求余。
以上是关于作业四的主要内容,如果未能解决你的问题,请参考以下文章