首页 > 代码库 > 第四次作业
第四次作业
4-1编写程序输入一个整数x,按照下式输入对应的y值 x为奇数y=1+3+5+...+x x为偶数y=2+4+6+...+x
#include<stdio.h> int main() { int a,b,sum=0; printf("输入一个整数。\n"); scanf("%d",&a); if(a<=0) { printf("输入错误\n"); } else if(a%2==0) { for(b=2;b<=a;b=b+2) { sum=sum+b; } { printf("输出为%d\n",sum); } } else if(a%2!=0) { for(b=1;b<=a;b=b+2) { sum=sum+b; } { printf("输出为%d\n",sum); } } return 0; }
知识点总结:for循环语句的应用 for(表达式1;表达式2;表达式3) 表达式1是一个在开始循环前要计算的表达式,即为循环变量赋出值。表达式2是计算结果为真或假的条件表达式。在每次循环前计算该条件,当计算结果为真时执行循环,为假时退出循环。表达式3是一个在每次循环体执行后要计算的表达式。
实验总结:for语句的格式表达含义,充分考虑情况,分析好题目,明确编程思路。
4-2编程求 1-1/2+1/3-1/4+1/5-...-1/100 保留两位小数
#include<stdio.h> int main() { int a; float b,sum; for(a=1;a<100;a++) { if(a%2!=0) { b=1/(float)a; } else { b=-1/(float)a; } sum=sum+b; } printf("和为%.2f",sum); return 0; }
知识点总结:循环语句,两种情况,
实验总结:保留两位小数的格式%.2f,float浮点型函数的应用。
4-3输入2000年至3000年所有闰年的年号,每输入10个年号换一行,最后统计一共有多少个闰年
#include<stdio.h> int main() { int a,b=0; for(a=2000;a<=3000;a++) { if((a%4==0&&a%100!=0)||(a%400==0)) { { printf("%d",a); b=b+1; } if(b%10==0) { printf("\n"); } } printf("共有%d",b); } return 0; }
知识点总结:for循环
实验总结:符合闰年的条件,注意语句执行的范围,大括号的使用。
4-4输入一个实数X和一个整数M,计算Xm
#include<stdio.h> int main() { int a,b; float c,sum=1.0; printf("输入一个实数和一个整数\n"); scanf("%f,%d",&c,&a); if(b=0) { sum=1; } else { for(b=1;b<=a;b++) { sum=sum*c; } } printf("输出为%d\n",sum); return 0;
}
知识点,实验总结:初始变量赋值,求幂考虑0次幂时为1.
4-5输入一串字符,分别统计其中字母空格数字和其他字符的个数
#include<stdio.h> int main() { int a,b,m,n; char c; 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\n",a,b,m,n); return 0; }
知识点 实验总结:首先赋出值为0,在执行时依次累加,各种情况都要表达清楚。
4-6输入一批数,输入0结束,分别计算其中整数的平均值和负数的平均值
#include<stdio.h> int main() { int a,b,c,d,e; a==0; b==0; c==0; e==0; while(1) { scanf("%d",&d); if(d==0) { break; } else if(d<0) { b++; e+=d; } else { c++; a+=d; } } printf("正数的平均数为%f,负数的平均值为%f",(float)a/c,(float)e/b); return 0; }
知识点总结:正负数符合的条件,用if嵌套,注意平均数的表达。
实验总结:赋出值为0,选择条件写编程各自求平均值。
4-7输入1000以内所有素数,每行10个,最后输出一个有多少个素数。
#include<stdio.h> #include<math.h> int main() { int n=0,a,b,c,d; for(a=2;a<=1000;a++) { c=1; d=sqrt(a); for(b=2;b<=d;b++) { if(a%b==0) { c=0; break; } } if(c==1) { n++; if(n%10==0) { printf("%4d\n",a); } else { printf("%4d",a); } } } return 0; }
知识点,实验总结:素数的因数只有它本身和1,首先选定c赋予两个值,c为1时说明为素数,反之,n表示素数的个数,与10除余,表示每十个一行。
4-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<=11-2*i;j++) { printf("*"); } printf("\n"); } return 0; }
知识点,实验总结:注意找规律,通用公式,用for循环,嵌套。
第四次作业