时间: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;
}