首页 > 代码库 > 第四次作业
第四次作业
1.编写程序,输入一个整数x,按照下式输出对应的y值。
#include<stdio.h> int main() { int x,y,i; char z; while(1) { printf("请输入一个正整数\n"); scanf("%d",&x); for(y=0,i=0;i<=x;i+=2) { if(x%2==0) { y=y+i; } else { if(i==0) { y+=1; i=1; } else { y=y+i; } } } printf("%d\n",y); scanf(" %c",&z); if(z==‘y‘) { continue; } else { break; } } }
第一个实验,主要运用的是continue和break的区别。
continue是结束循环之后重新循环,break则是跳出。
2.编程求1-1/2+1/3-1/4+1/5- … +1/99-1/100,结果保留两位小数。
#include<stdio.h> int main() { int x,i; float y; for(i=2,y=1,x=100;i<=x;i++) { if(i%2==0) { y=y-1/(float)i; } else { y=y+1/(float)i; } } printf("%.2f",y); }
这个实验主要注意整形和实数的转换。
3.输出2000年至3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年。
#include<stdio.h> int main() { int year,i; for(year=2000,i=0;year<=3000;year++) { if(year%4==0&&year%100!=0||year%400==0) { printf("%d ",year); i++; if(i%10==0) { printf("\n"); } } } printf("共有%d个\n",i); }
注意换行指令的位置。
4.输入一个实数x和一个整数m,计算xm,不允许调用pow()函数。
#include<stdio.h> int main() { int m,i; float x,y; scanf("%f %d",&x,&m); i=0,y=1; while(i<m) { y=y*x; i++; } printf("%f",y); }
5.输入一串字符,分别统计其中字母、空格、数字和其他字符的个数。
#include<stdio.h> int main() { char a; int b,c,d,i,e; printf("请输入一串字符"); d=0; i=0; b=0; c=0; e=0; do { scanf("%c",&a); if(a>=‘0‘&&a<=‘9‘) { b++; } else if(a>=‘a‘&&a<=‘z‘||a>=‘A‘&&a<=‘Z‘) { c++; } else if(a==‘ ‘) { d++; } else { i++; } }while(a!=‘\n‘); printf("数字%d,字母%d,空格%d,字符%d",b,c,d,i-1); }
注意缓存区的空格。
6.输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值。
#include<stdio.h> int main() { int a,b,c,d,e; float m,n; b=0,c=0,d=1,e=1; while(1) { scanf("%d",&a); if(a==0) { break; } else { if(a>0) { b=b+a; d++; } else { c=c+a; e++; } } } if(d-1==0) { printf("没有正数"); } else { m=(float)b/(d-1); printf("%.2f\n",m); } if(e-1==0) { printf("没有负数"); } else { n=(float)c/(e-1); printf("%.2f\n",n); } }
7.输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
#include<stdio.h> int main() { int i,n,flag,m=0; printf("将列出一千以内的所有素数。\n"); for(i=2;i<=1000;i++) { for(n=2;n<=i-1;n++) { if(i%n==0) { flag=1; break; } else { flag=0; } } if(flag==0) { printf("%3d ",i); m++; if(m%10==0) { printf("\n"); } } } return 0; }
8.打印下列图形
#include<stdio.h> int main() { int a,b; for(a=9;a>=1;a-=2) { for(b=9;b>a;b--) { printf(" "); } for(b=1;b<=a;b++) { printf("* "); } printf("\n"); } }
说真的,一开始是图例的图形,嫌不正给改成这样了,再一看题......
二、知识点总结
1、continue和break的运用。两个语句的特点已经在上面提到了。灵活的运用可以实现对程序及循环是否终止的控制。
2、显示排版“外行内列”思想。
三、实验总结
1、好好审题......以及下次早点做(各位对不起)
2、注意字符型变量“一个个读”的特点。
3、注意缓存区。
第四次作业
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。