C语言实验 循环结构
时间:2024.11.8
一、实验
7-1 求交错序列前N项和
#include<stdio.h>
#include<math.h>
int main(){int n;double a,b,c;double sum=0;scanf("%d",&n);for(int i=1;i<=n;i++){a=pow(-1,i+1)*i;b=2.0*i-1.0;c=1.0*a/b;sum+=c;}printf("%.3lf",sum);return 0;
}
TIPS:
注意变量的类型,整型的计算无法满足小数的要求
7-2 寻找250
#include<stdio.h>
#include<math.h>
int main(){int n;for(int i=1; ;i++){if(n==250){printf("%d",i-1);break;}scanf("%d",&n);} return 0;
}
TIPS:
注意循环的退出和输入数据的时机 。
7-3 最大公约数和最小公倍数
#include<stdio.h>
#include<math.h>
int main(){int m,n,t,p;scanf("%d %d",&m,&n);t=m>n?n:m;while(1){ if(m%t==0&&n%t==0){break;}else t--;}p=m*n/t;printf("%d %d",t,p);return 0;
}
TIPS:
最大公约数和最小公倍数的找法,如果两个都需要求,可以通过简便方法由最大公因数求最小公倍数。
7-4 统计字符
#include<stdio.h>
#include<math.h>
int main(){char m;int l=0,b=0,d=0,o=0;for(int i=1;i<=10;i++){ scanf("%c",&m);if((m>='a'&&m<='z')||(m>='A'&&m<='Z')){l++;}else if(m==' '||m=='\n'){b++; }else if(m<='9'&&m>='0'){d++;}else {o++;}}printf("letter = %d, blank = %d, digit = %d, other = %d",l,b,d,o);return 0;
}
7-5 大笨钟
#include<stdio.h>
#include<math.h>
int main(){int m,h,n;scanf("%d:%d",&h,&m);if((h<12)||(h==12&&m==0)){printf("Only %02d:%02d. Too early to Dang.",h,m);}else {if(m==0){n=h-12;}else n=h-11;
for(int i=1;i<=n;i++)
{printf("Dang");}}return 0;
}
TIPS:
先考虑一般情况,再考虑整点,分界点(零点、中午12点) 等的特殊情况
7-6 统计选票
#include<stdio.h>
#include<math.h>
int main(){int t=0,j=0,n,s=0,f=0;
do{scanf("%d ",&n);if(n==1) t++;else if(n==1) t++;else if(n==2) j++;else if(n==3) s++;else if(n==0||n==4) f++;
}while(n!=-1);printf("Tom = %d Jerry = %d Spike = %d Invalid = %d\n",t,j,s,f);if(t<=f&&j<=f&&s<=f){ printf("Election invalid!");}return 0;
}
TIPS:
注意输出的顺序,哪个语句在前,哪个语句在后,注意输出和输入是否需要换行
7-7 降价提醒机器人
#include<stdio.h>
#include<math.h>
int main(){int m,n;double h;scanf("%d %d\n",&n,&m);for(int i=1;i<=n;i++){scanf("%lf\n",&h);if(h<(m*1.0)){printf("On Sale! %.1lf\n",h);}}return 0;
}
7-8 幸运彩票
#include<stdio.h>
#include<math.h>
int main(){int m,n;int q,h;scanf("%d\n",&n);for(int i=1;i<=n;i++){scanf("%d\n",&m);q=m/100000+m/10000%10+m/1000%10;h=m%10+m%100/10+m%1000/100;if(q==h){printf("You are lucky!\n");}else printf("Wish you good luck.\n"); }return 0;
}