第四次作业
Posted 一范红宇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四次作业相关的知识,希望对你有一定的参考价值。
1.编写程序,输入一个整数x,按照下式输出对应的y值。
#include<stdio.h> int main() { int i,x,y=0; printf("请输入一个整数"); scanf("%d",&x); if(x%2!=0) { for(i=1;i<=x;i+=2) { y=y+i; } printf("当x为奇数时,y=%d",y); } else { for(i=2;i<=x;i+=2) { y=y+i; } printf("当x为偶数时,y=%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 sum=0; for(i=1;i<=100;i++) { if(i%2==0) { sum=sum+(-1.0)/i; } else { sum=sum+(1.0)/i; } } printf("%.2f\\n",sum); return 0; }
3.输出2000年至3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年。
#include<stdio.h> int main() { int i,j=0; for(i=2000;i<=3000;i++) { if(i%400==0||i%4==0&&i%100!=0) { printf("%d ",i); j++; if(j%10==0) { printf("\\n"); } } } printf("一共有%d个闰年",j); return 0; }
4.输入一个实数x和一个整数m,计算xm,不允许调用pow()函数。
#include<stdio.h>
#include<stdio.h> int main() { float x,y=1.0; int i,m; printf("请输入一个实数x和一个整数m"); scanf("%f%d",&x,&m); if(m>0) { for(i=1;i<=m;i++) { y=y*x; } } else if(m==0) { y=1; } 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 zimu=0,kongge=0,shuzi=0,qita=0; printf("输入一串字符"); scanf("%c",&c); while(c!=\'\\n\') { if(c>=\'a\'&&c<=\'z\'||c>=\'A\'&&c<=\'Z\') { zimu++; } else if(c==\' \') { kongge++; } else if(c>=\'0\'&&c<=\'9\') { shuzi++; } else { qita++; } scanf("%c",&c); } printf("字母=%d,空格=%d,数字=%d,其他=%d",zimu,kongge,shuzi,qita); return 0; }
6.输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值
#include<stdio.h> int main() { int i=0,j=0,sum1=0,sum2=0; float a,ave1=0,ave2=0; do { printf("请输入一批数"); scanf("%f",&a); if(a>0) { i++; sum1+=a; ave1=sum1/i; } else if(a<0) { j++; sum2+=a; ave2=sum2/j; } }while(a!=0); printf("正数平均值:%f",ave1); printf("负数平均值:%f",ave2); return 0; }
7.输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)
#include<stdio.h> int main() { int i,j,flag=0,m=0; for(i=2;i<=1000;i++) { for(flag=0,j=2;j<=i-1;j++) { if(i%j==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; 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; }
二、本次课知识点总结
1、 学习了三种循环结构:
(1).for语句 一般形式:for(表达式1;表达式2;表达式3)
{
循环体语句
}
建议无论循环体有几条语句,一律都加{}
(2).while语句 表达式1:
while(表达式2)
{
语句1
语句2
表达式3;
}
特点:先判断表达式,后执行循环体,循环体有可能一次也不执行。
(3).do......while语句 表达式1;
do
{
语句1
语句2
表达式3;
}while(表达式2);
特点:先执行循环体,后判断表达式,至少执行一次循环。
2.break语句
(1)在循环语句和switch语句中,用break跳出循环
(2)break只能终止并跳出最近一层的结构
continue语句
(1)只能用于循环语句中,一般都与if语句一起使用
(2)只结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断
3.累加求和问题注意 和要初始化为0
累乘求和问题注意 乘积要初始化为1
三、实验总结
1、忘记了取地址符
2、循环时逻辑有点混乱
3、for,if,while后面没有分号且for语句括号中用分号隔开
4、变量忘记附初值
以上是关于第四次作业的主要内容,如果未能解决你的问题,请参考以下文章