第四次作业
4-1编写程序输入一个整数x,按照下式输入对应的y值 x为奇数y=1+3+5+...+x x为偶数y=2+4+6+...+x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #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 保留两位小数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #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个年号换一行,最后统计一共有多少个闰年
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #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;<br>} |
知识点,实验总结:初始变量赋值,求幂考虑0次幂时为1.
4-5输入一串字符,分别统计其中字母空格数字和其他字符的个数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #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结束,分别计算其中整数的平均值和负数的平均值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #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个,最后输出一个有多少个素数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #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打印下列图形
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #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循环,嵌套。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)