第4次作业
Posted 叶青松
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第4次作业相关的知识,希望对你有一定的参考价值。
1.编写程序,输入一个整数x,按照下式输出对应的y值。
1 #include<stdio.h> 2 int main() 3 { 4 int a,i,k,sum1,sum2; 5 printf("输入数字:\\n"); 6 scanf("%d",&a); 7 if(a%2!=0) 8 { 9 for(i=1;i<=a;i=i+2) 10 { 11 sum1=sum1+i; 12 } 13 printf("和为%d",sum1); 14 } 15 else if(a%2==0) 16 { 17 for(k=2;k<=a;k=k+2) 18 { 19 sum2=sum2+k; 20 } 21 printf("和为%d",sum2); 22 } 23 return 0; 24 }
2.编程求1-1/2+1/3-1/4+1/5- … +1/99-1/100,结果保留两位小数。
1 #include<stdio.h> 2 int main() 3 { 4 int i,j,k; 5 float sum=0,sum1=0,sum2=0; 6 for(i=1;i<=100;i++) 7 { 8 if(i%2==0) 9 { 10 sum1=sum1-(float)1/i; 11 } 12 else if(i%2!=0) 13 { 14 sum2=sum2+(float)1/i; 15 } 16 } 17 sum=sum1+sum2; 18 printf("%.2f",sum); 19 return 0; 20 }
3.输出2000年至3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年。
1 # include <stdio.h> 2 int main() 3 { 4 int x=3000,y=0,i; 5 for(i=2000;i<=x;i++) 6 { 7 if((i%4==0&&i%100!=0)||i%400==0) 8 { 9 printf(" %d",i); 10 y=y+1; 11 if(y%10==0) 12 { 13 printf("\\n"); 14 } 15 } 16 } 17 printf("\\n"); 18 printf("闰年有%d个",y); 19 return 0; 20 }
4.输入一个实数x和一个整数m,计算xm,不允许调用pow()函数。
1 #include<stdio.h> 2 int main() 3 { 4 int x,m,i,y=1; 5 printf("输入x,m的值:"); 6 scanf("%d,%d",&x,&m); 7 for(i=1;i<=m;i++) 8 { 9 y=y*x; 10 } 11 printf("x的m次方的值为%d:",y); 12 return 0; 13 }
5.输入一串字符,分别统计其中字母、空格、数字和其他字符的个数。
1 #include<stdio.h> 2 int main() 3 { 4 int a=0,b=0,e=0,d=0,i; 5 char x; 6 while(x!=\'\\n\') 7 { 8 for(i=1;i>=0;i++) 9 { 10 scanf("%c",&x); 11 if(x==\'\\n\') 12 { 13 break; 14 } 15 else if((x>=\'a\'&&x<=\'z\')||(x<=\'Z\'&&x>=\'A\')) 16 { 17 a++; 18 } 19 else if(x>=\'0\'&&x<=\'9\') 20 { 21 b++; 22 } 23 else if(x==\' \') 24 { 25 e++; 26 } 27 else if(x!=\'\\n\') 28 { 29 d++; 30 } 31 } 32 } 33 printf("字母%d个,数字%d个,空格%d个,其他%d个",a,b,e,d); 34 return 0; 35 }
6.输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值,
1 #include<stdio.h> 2 int main() 3 { 4 int a,b=0,c=0,d=0,e=0; 5 float x,y; 6 printf("请输入数字\\n"); 7 scanf("%d",&a); 8 do 9 { if(a>=0) 10 { 11 c=c+a; 12 scanf("%d",&a); 13 b++; 14 15 } 16 else 17 { 18 e=e+a; 19 scanf("%d",&a); 20 d++; 21 } 22 } 23 while(a!=0) ; 24 x=(float)c/b; 25 y=(float)e/d; 26 printf("%.2f,%.2f",x,y); 27 return 0; 28 }
7.输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<math.h> 4 int main() 5 { 6 int i,m,flag,c,d,b; 7 for(m=1;m<=1000;m++) 8 { 9 c=sqrt(m); 10 flag=0; 11 for(i=2;i<=c;i++) 12 { 13 if(m%i==0) 14 { 15 flag=1; 16 break; 17 } 18 } 19 if(flag!=1) 20 { 21 printf(" %d",m); 22 b++; 23 if(b!=0&&b%10==0) 24 { 25 printf("\\n"); 26 } 27 } 28 } 29 printf("\\n"); 30 printf("一共%d个素数",b); 31 return 0; 32 33 }
8.打印下列图形
1 #include<stdio.h> 2 int main() 3 { 4 int i,j,k; 5 for(i=5;i>=1;i--) 6 { 7 for(k=4;k>=i;k--) 8 { 9 printf(" "); 10 } 11 for(j=1;j<=2*i-1;j=j+1) 12 { 13 printf("*"); 14 } 15 printf("\\n"); 16 } 17 return 0; 18 }
二、本次课知识点总结
1for和if两个语句可以循环叠加。
2为了保证循环正常结束,在循环内改变变量。
3 do while的while后加;。
三、实验总结(实验中遇到的问题及解决方法)
1注意赋值在循环之前,输入变量在输出之前。
2while语句的大括号外不用加;。
以上是关于第4次作业的主要内容,如果未能解决你的问题,请参考以下文章