第四次作业
1.编写程序,输入一个整数x,按照下式输出对应的y值。
#include <stdio.h> int main () { int x,y,i; y=0; printf("请输入一个整数"); scanf("%d",&x); if(x%2==0) { for(i=2;i<=x;i=i+2) { y=y+i; } printf ("%d",y); } else { for(i=1;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; float y=0; for (i=1;i<=100;i++) { if (i%2==0) { y=y-(1.0)/i; } else { y=y+(1.0)/i; } } printf ("%.2f",y); return 0; }
3.输出2000年至3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年
#include <stdio.h> int main() { int i,x; x=0; for (i=2000;i<=3000;i++) { if (i%4==0&&i%100!=0||i%400==0) { printf("%03d ",i); x++; if(x%10==0) { printf("\n"); } } } printf ("共有%d个闰年",x); return 0 ; }
4.输入一个实数x和一个整数m,计算xm,不允许调用pow()函数。
#include <stdio.h> int main () { int m,i; float x,y; y=1.0; printf ("输入一个实数x,一个整数m"); scanf ("%f%d",&x,&m); if (m==0) { y=1; } else 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); } } printf ("%f",y); return 0; }
5.输入一串字符,分别统计其中字母、空格、数字和其他字符的个数
#include <stdio.h> int main () { char c; int a,b,m,n; a=0; b=0; m=0; n=0; while((c=getchar())!='\n') { if(c>='a'&&c<='z'||c<='z'&&c>='a') { a++; } else if (c==' ') { b++; } else if (c>='0'&&c<='9') { m++; } else { n++; } } printf("字符个数是%d,空格字数是%d,数字个数是%d,其他个数是%d",a,b,m,n); return 0; }
6.输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值,
#include <stdio.h> int main () { int x,a=0,b=0,m=0,n=0; float average1,average2; printf ("请输入一批数字,输入零时结束"); scanf ("%d",&x); if (x==0) { printf("错误"); } while (x!=0) { if (x>0) { a=a+x; m++; average1=a/m; } else if(x<0) { b=b+x; n++; average2=b/n; } scanf("%d",&x); } printf ("正数的平均数为%.2f 负数的平均数为%.2f",average1,average2); return 0; }
7.输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
#include <stdio.h> int main () { int m,n,flag=0,z=0; for (m=2;m<=1000;m++) { flag=0; for (n=2;n<m-1;n++) { if(m%n==0) { flag=1; break; } } if(flag==0) { printf(" %3d ",m); z++; if (z%10==0) { printf("\n"); } } } printf ("总共有%d个素数",z); return 0; }
8.打印下列图形
#include <stdio.h> int main () { int i,j; for (i=1;i<=5;i++) { for (j=1;j<=i-1;j++) { printf(" "); } for (j=1;j<=2*(5-i)+1;j++) { printf ("*"); } printf ("\n"); } return 0; }
实验总结:for循坏和while循坏的区别及格式
=是赋值 ==是等于
知识点总结: 当循坏次数已知的时候 用 for
由给定条件控制,循环次数未知的时候,用 while
循坏体至少执行一次 用 do while
循坏语句的嵌套