7-46 爬动的蠕虫 (15 分)
#include<stdio.h>
int main(){
int n,u,d;
scanf("%d %d %d",&n,&u,&d);
int m=0,flag=0;
for(int i=1;;i++){
if(flag==0){
flag=1;
m+=u;
}
else{
flag=0;
m-=d;
}
if(m>=n){
printf("%d",i);
break;
}
}
return 0;
}
7-48 求组合数 (15 分)<函数>
#include<stdio.h>
double fact(int n){
double sum=1;
for(int i=1;i<=n;i++){
sum*=i;
}
return sum;
}
int main(){
int n,m;
scanf("%d %d",&m,&n);
double result;
result=fact(n)/(fact(m)*fact(n-m));
printf("result = %.0f",result);
return 0;
}
7-66 时间换算 (15 分)
#include<stdio.h>
int main(){
int h,m,s;
scanf("%d:%d:%d",&h,&m,&s);
int t;
scanf("%d",&t);
s+=t;
m+=s/60;
h+=m/60;
s%=60;
m%=60;
h%=24;
printf("%02d:%02d:%02d",h,m,s);
return 0;
}
//输入样例:11:59:40\n30\n
//输出样例:12:00:10
7-73 比较大小 (10 分)
#include<stdio.h>
int main(){
int a,b,c,i;
scanf("%d %d %d",&a,&b,&c);
if(a>b){
int t=a;
a=b;
b=t;
}
if(a>c){
int t=c;
c=a;
a=t;
}
if(b>c){
int t=b;
b=c;
c=t;
}
printf("%d->%d->%d\n",a,b,c);
return 0;
}
7-92 特殊a串数列求和 (20 分)
#include<stdio.h>
/*a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。*/
int main(){
int a,n;
scanf("%d %d",&a,&n);
int x=1,sum=a;
int i=a;
while(x<n){
a=a*10+i;
sum+=a;
x++;
}
printf("s = %d",sum);
return 0;
}
7-99 打印九九口诀表 (15 分)
#include<stdio.h>
int main(){
int a,b,n;
scanf("%d",&n);
for(b=1;b<=n;b++){
for(a=1;a<=b;a++){
printf("%d*%d=%-4d",a,b,a*b);
}
printf("\n");
}
return 0;
}
7-105 寻找250 (10 分)
#include<stdio.h>
int main(){
int n=1001,count=0;
while(n!=250){
scanf("%d",&n);
getchar();
count++;
}
printf("%d",count);
return 0;
}
7-110 求符合给定条件的整数集 (15 分)
#include<stdio.h>
/*
234 235 243 245 253 254
324 325 342 345 352 354
423 425 432 435 452 453
523 524 532 534 542 543
*/
int main(){
int a;
scanf("%d",&a);
if(a<=6&&a>0){
for(int i=a;i<a+4;i++){
int cnt=0;
for(int j=a;j<a+4;j++){
for(int k=a;k<a+4;k++){
if(i!=j&&j!=k&&i!=k){
printf("%d%d%d",i,j,k);
cnt++;
if(cnt<6)
printf(" ");
else
printf("\n");
}
}
}
}
}
else
return 0;
}
7-121 作品评分 (10 分)
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
double score[n];
for(int i=0;i<n;i++){
getchar();
scanf("%lf",&score[i]);
}
double min=score[0],max=score[1];
for(int i=0;i<n;i++){
if(score[i]<min)
min=score[i];
if(score[i]>max)
max=score[i];
}
double sum=0,final=0;
for(int i=0;i<n;i++){
sum+=score[i];
}
final=(sum-min-max)/(n-2);
printf("%.2f",final);
return 0;
}
7-126 时间差 (10 分)
#include<stdio.h>
int main(){
int h,m;//hour minite
int h1,m1,h2,m2;
scanf("%d:%d %d:%d",&h1,&m1,&h2,&m2);
m1=h1*60+m1;
m2=h2*60+m2;
h=(m2-m1)/60;
m=(m2-m1)%60;
printf("%d %d",h,m);
return 0;
}
//输入:10:30 11:45
//输出:1 15
7-127 Sum of the digits (6 分)
#include<stdio.h>
int main(){
int x,sum=0;
scanf("%d",&x);
if(x<0)
return 0;
while(x>0){
sum+=x%10;
x/=10;
}
printf("%d",sum);
return 0;
}
7-129 最佳情侣身高差 (10 分)
#include<stdio.h>
int main(){
//(女方的身高)×1.09 =(男方的身高)
int n;
scanf("%d",&n);
double h;
char sex;
getchar();
for(;n>0;n--){
scanf("%c %lf",&sex,&h);
getchar();
if (sex=='M')
printf("%.2f\n",h/1.09);
if (sex=='F')
printf("%.2f\n",h*1.09);
}
return 0;
}
7-133 666 (10 分)
sn=6+66+666+…+66…66(n个6)
#include<stdio.h>
#include<math.h>
int main(){
int n,s=6,sum=0;
scanf("%d",&n);
for(int i=0;i<n;i++){
sum+=s;
s+=6*pow(10,i+1);
//printf("%d\n",s);
}
printf("%d",sum);
return 0;
}
7-134 倒顺数字串 (10 分)
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
if(n==1){
printf("%d",n);
return 0;
}
for(int i=1;i<=n;i++){
printf("%d ",i);
}
for(int i=n-1;i>0;i--){
if(i==1)
printf("%d",i);
else
printf("%d ",i);
}
return 0;
}
//in:6
//out:1 2 3 4 5 6 5 4 3 2 1
7-135 数字金字塔 (10 分)
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
int x=38;
for(int m=1;m<=n;m++,x--){
for(int i=x;i>0;i--){
printf(" ");
}
for(int i=1;i<=m;i++){
printf("%d",i);
}
for(int i=m-1;i>0;i--){
printf("%d",i);
}
printf("\n");
}
return 0;
}/*
in:5
out:
1
121
12321
1234321
123454321
*/
7-137 Average (10 分)
#include<stdio.h>
int main(){
int n;
double x=0,count=0;
while(1){
scanf("%d",&n);
getchar();
if(n<0)
break;
count++;
x+=n;
}
if(count!=0)
printf("%.2f",x/count);
else
printf("None");
return 0;
}
7-139 手机话费 (10 分)
#include<stdio.h>
/*小明的手机每天消费1元,每消费K元就可以获赠1元,一开始小明有M元,问最多可以用多少天?*/
int main(){
int m,k;
int count=0,t=0;
scanf("%d %d",&m,&k);
while(m>0){
m--;
count++;
if(count==k){
m++;
t+=count;
count=0;
}
}
printf("%d",t+count);
return 0;
}