第四次作业
Posted 燕超
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四次作业相关的知识,希望对你有一定的参考价值。
1.编写程序,输入一个整数x,按照下式输出对应的y值。
#include <stdio.h> int main() { int x,i,s=0; printf("请输入一个数:\n"); scanf("%d",&x); if(x<=0) { printf("输入错误!"); } else { if(x==1) { printf("和为1"); } else if(x==2) { printf("和为2"); } else if(x%2==1) { for(i=1;i<=x;i+=2) { s=s+i; } printf("和为%d",s); } else { for(i=2;i<=x;i+=2) { s=s+i; } printf("和为%d",s); } } return 0; }
2.编程求1-1/2+1/3-1/4+1/5- … +1/99-1/100,结果保留两位小数。
#include <stdio.h> int main() { float x=0,y=0,i,g,s; printf("求1-1/2+1/3-1/4+1/5- … +1/99-1/100,结果保留两位小数\n"); for(i=1;i<=99;i+=2) { x=x+1/i; } for(g=2;g<=100;g+=2) { y=y+(-1/g); } s=x+y; printf("结果为%.2f",s); return 0; }
3.输出2000年至3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年。
#include <stdio.h> int main() { int n=0,i,m=0; printf("输出2000年至3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年。\n"); for(i=2000;i<=3000;i++) { if(i%4==0&&i%100!=0||i%400==0) { printf("%d ",i); n++; m++; if(n%10==0) { printf("\n"); } } } printf("%d\n",i); printf("一共有%d个闰年",m); return 0; }
4.输入一个实数x和一个整数m,计算xm,不允许调用pow()函数。
#include<stdio.h> int main() { int m,i; float x,s=1.0; printf("输入一个实数x和一个整数m:\n"); scanf("%f%d",&x,&m); for(i=1;i<=m;i++) { s=s*x; } printf("结果为%f",s); return 0; }
5.输入一串字符,分别统计其中字母、空格、数字和其他字符的个数。
#include <stdio.h> int main() { char ar; int word=0,space=0,num=0,other=0; printf("输入一串字符,分别统计其中字母、空格、数字和其他字符的个数。\n"); scanf("%c",&ar); while(ar!=‘\n‘) { if(ar>=‘a‘&&ar<=‘z‘||ar>=‘A‘&&ar<=‘Z‘) { word++; } else if(ar==‘ ‘) { space++; } else if(ar>=‘0‘&&ar<=‘9‘) { num++; } else { other++; } scanf("%c",&ar); } printf("字母有%d个\n",word); printf("空格有%d个\n",space); printf("数字有%d个\n",num); printf("其他字符有%d个\n",other); return 0; }
6.输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值,
#include <stdio.h> int main() { float n,nx=0,ny=0,x=0,y=0,sx,sy; printf("输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值。\n"); scanf("%f",&n); while(n!=0) { if(n>0) { nx=nx+n; x++; sx=nx/x; } else { ny=ny+n; y++; sy=ny/y; } scanf("%f",&n); } printf("正数和为%f",sx); printf("负数和为%f",sy); return 0; }
、
7.输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
#include <stdio.h> int main() { int a,b,c=0; printf("输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)\n"); for(a=2;a<=1000;a++) { for(b=2;b<a;b++) { if(a%b==0) break; } if(b>=a) { printf(" %03d ",a); c++; if(c%10==0) { printf("\n"); } } } printf("\n一共有%d个素数",c); return 0; }
8.打印下列图形
#include <stdio.h> int main() { int i,g,n,m; for(i=1;i<=5;i++) { for(g=1;g<=i-1;g++) { printf(" "); } n=11-2*i; for(m=1;m<=n;m++) { printf("*"); } printf("\n"); } return 0; }
知识点总结:
1: break:只用于循环语句和switch语句,且用于循环语句时通常与if一起使用。
continue:跳过本次循环剩余语句,直接进行下次循环判定。
2:累加型定义和变量时初值应为0,累乘变量初值应为1.
3:for循环适用于变量为数值变化。
while循环适用范围广。
do while 循环 先执行一次循环再判断循环是否执行,有一定的使用限制。与while类似。
4:循环的内嵌,注意循环之间的逻辑联系。
实验总结:
1:可以考虑将一个问题转换成多个循环来简化问题
2:循环内嵌时注意一些不参与内嵌循环的语句的位置。
3:取地址符,分号之类的小细细细节。。。。
4:判断语句,优先使用简洁的。
5:循环条件注意题干和自己的思路的匹配
以上是关于第四次作业的主要内容,如果未能解决你的问题,请参考以下文章