第四次作业
1.编写程序,输入一个整数x,按照下式输出对应的y值。
#include<stdio.h> int main() { int x,i,y=0; printf("请输入一个整数\n"); scanf("%d",&x); if(x%2==1) { for(i=1;i<=x;i=i+2) { y=y+i; } printf("%d",y); } else if(x%2==0) { for(i=2;i<=x;i=i+2) { y=y+i; } printf("%d",y); } return 0; }
2.编程求1-1/2+1/3-1/4+1/5- … +1/99-1/100,结果保留两位小数。
#include<stdio.h> int main() { int i,x=100; float y=1; for(i=2;i<=x;i=i+1) { if(i%2==0) { y=y-1.0/i; } else if(i%2==1) { y=y+1.0/i; } } printf("%.2f",y); return 0; }
3.输出2000年至3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年。
#include<stdio.h> int main() { int n,c=0; for(n=2000;n<=3000;n++) { if(n%100!=0&&n%4==0||n%400==0) { printf("%d ",n); c++; if(c%10==0) { printf("\n"); } } } printf("一共有%d个闰年",c); return 0; }
4.输入一个实数x和一个整数m,计算xm,不允许调用pow()函数。
#include<stdio.h> int main() { int m,i; float x,y=1; printf("请输入一个实数x和一个整数m\n"); scanf("%f%d",&x,&m); if(m>0) { for(i=1;i<=m;i++) { y=y*x; } } else if(m<0) { for(i=-1;i>=m;i--) { y=y*(1/x); } } else if(m==0) { y=1; } printf("%f\n",y); return 0; }
5输入入一串字符,分别统计其中字母、空格、数字和其他字符的个数。
#include<stdio.h> int main() { int a,b,c,d,e,i; char c1; a=0; b=0; c=0; d=0; e=0; printf("请输入一串字符\n"); scanf("%c",&c1); while(c1!='\n') { if('A'<=c1&&c1<='Z'||'a'<=c1&&c1<='z') { b++; } else if(c1==32) { c++; } else if('0'<=c1&&c1<='9') { d++; } else { e++; } scanf("%c",&c1); } printf("字母有%d个,空格有%d个,字母有%d个,其他有%d个",b,c,d,e); return 0; }
6.输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值,
#include<stdio.h> int main() { int a,b,c,d,e; b=0; c=0; d=0; e=0; printf("请输入一批数\n"); scanf("%d",&a); while(1) { if(a>0) { b+=a; e++; } else if(a<0) { d+=a; c++; } else if(a==0) break; scanf("%d",&a); } if(e==0&&c==0) { printf("没有结果\n"); } else if(e==0&&c!=0) { printf("正数的平均值为0,负数的平均数为%f\n",(float)b/e); } else if(e!=0&&c==0) { printf("正数的平均值为%f,负数的平均值为0\n",(float)d/c); } else if(e!=0&&c!=0) { printf("正整数的平均数为%f,负数的平均数是%f",(float)d/c,(float)b/e); } return 0; }
7.输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
#include<stdio.h> int main() { int i,n,m=0,flag=0; for(i=2;i<=1000;i++) { for(flag=0,n=2;n<=i-1;n++) { if(i%n==0) { flag=1; break; } } if(flag!=1) { printf("%4d ",i); m++; if(m%10==0) { printf("\n"); } } } printf("一共有%d个素数",m); return 0; }
8.打印下列图形
#include<stdio.h> int main() { int i,j,k; for(i=1;i<=6;i++) { for(k=5;k>=(6-i);k--) { printf(" "); } for(j=9;j>=(i*2-1);j--) { printf("*"); } printf("\n"); } return 0; }
知识点总结:
1.自增自减运算符。
2.复合赋值运算符。
3.逗号运算符和逗号语句表达式。
4.while语句的运用。
5.do…while语句。
6.for语句。
7.常用的数学算法(知识框图)。
实验总结:
1.循环结构两大要素 1)循环条件:结束循环的条件表达式。2)循环体:循环执行的语句或语句组。
2.循环体语句可以是单条语句也可以是复合语句。
3.良好的编程风格提倡:在一行语句中,一个变量只出现一次增量,减量运算符。