每日学习 1200--1209

1200 正数的平均值

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 12835 | 通过数 : 5969

题目描述

输入10个实数,计算并输出所有大于0的数的平均值。

输入要求

输入10个实数。

输出要求

计算大于0的数的平均值。

输入样例

-5 2 -6 9 -4 -2 0 6 1 10

输出样例

5.60

模板

#include<stdio.h>
#define N 10
@-@  //设计函数实现求平均
int main()
{
	double a[N],res;
	int i;
	for(i=0;i<N;i++)
	{
		scanf("%lf",&a[i]);
	}
    res=ave(a,N);   //调用函数求大于0的数的平均值
	printf("%.2f\n",res);
	return 0;
}

提示

输出精确到小数点后2位。

来源

NBU OJ
#include<stdio.h>            //C
#define N 10

double ave(double a[N],int n){
	int i,d=0;
	double s=0;
	for(i=0;i<n;i++){
		if(a[i]>0) s+=a[i],d++;
	}
	return s/d;
}
//设计函数实现求平均

int main(){
	double a[N],res;
	int i;
	for(i=0;i<N;i++){
		scanf("%lf",&a[i]);
	}
    res=ave(a,N);   //调用函数求大于0的数的平均值
	printf("%.2f\n",res);
	return 0;
}


1201 输出最短字符串

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 12597 | 通过数 : 5980

题目描述

输入五个字符串,输出其中最短的字符串。若长度相同则输出出现较早的那一个。

输入要求

输入五个字符串

输出要求

输出其中最短的字符串。

输入样例

Hee
Fi
Fdhi
Ai
Fdis

输出样例

Fi

提示

数组长度开到1000

来源

NBU OJ
#include<stdio.h>             //C
#include<string.h>
int main(){
	char s1[1000],s2[1000],s3[1000],s4[1000],s5[1000],s6[1000];
	int len=0;
	gets(s1);
	gets(s2);
	gets(s3);
	gets(s4);
	gets(s5);
	strcpy(s6,s1);
	if(strlen(s2)<strlen(s6)) strcpy(s6,s2);
	if(strlen(s3)<strlen(s6)) strcpy(s6,s3);
	if(strlen(s4)<strlen(s6)) strcpy(s6,s4);
	if(strlen(s5)<strlen(s6)) strcpy(s6,s5);
	puts(s6);
	return 0;
}


1202 字符查找

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 8425 | 通过数 : 4542

题目描述

在一个字符串中查找指定的一个字符,并输出指定的字符在字符串中出现的次数及位置。

输入要求

第一行输入一个字符串,第二行输入要查找的字符。

输出要求

第一行输出该字符在字符串中出现过的次数n, 后面n行依次输出该字符曾出现过的地方(出现位置按日常计数习惯从1开始标记)

输入样例

maybeyesmaybleno
m

输出样例

2
1
9

提示

 

来源

NBU OJ
#include<stdio.h>          //C
#include<string.h>
int main(){
	char a[1000],key;
	int i,d=0,id[100],k=0;
	gets(a);
	scanf("%c",&key);
	for(i=0;a[i]!='\0';i++){
		if(a[i]==key) d++,id[k++]=i+1;
	}
	printf("%d\n",d);
	for(i=0;i<d;i++) printf("%d\n",id[i]);
	return 0;
}

1203 字符删除操作(1)

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 7516 | 通过数 : 4137

题目描述

删除字符串指定位置上的字符,输出删除后的结果。

输入要求

输入一个字符串,并输入要删除的字符在该数组中的位置(非下标)。

输出要求

输出改编后的字符串

输入样例

Hello123
7

输出样例

Hello13

提示

 

来源

NBU OJ
#include<stdio.h>           //C
#include<string.h>
int main(){
	char a[1000];
	int i,n;
	gets(a);
	scanf("%d",&n);
	for(i=0;a[i]!='\0';i++){
		if(i!=n-1) printf("%c",a[i]);
	}
	printf("\n");
	return 0;
}

1204 字符删除操作(2)

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 8619 | 通过数 : 3069

题目描述

删除字符串指定位置字符后的m个字符(包括指定位置的字符)。

输入要求

 

第一行输入两个整型数n和m,分别代表字符串的第n个字符(非下标)和要删除m个字符。

第二行输入要处理的原始字符串。

输出要求

输出处理后的字符串。

输入样例

7 6
I love movie

输出样例

I love

提示

 

来源

NBU OJ
#include<stdio.h>             //C
#include<string.h>
int main(){
	int n,m,i;
	char a[1000];
	scanf("%d%d\n",&n,&m);//注意 \n
	gets(a);
	for(i=0;i<strlen(a);i++){
		if(i<n-1||i>n+m-2) printf("%c",a[i]);
	}
	printf("\n");
	return 0;
}

1205 梯形面积

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 12567 | 通过数 : 7280

题目描述

 

已知梯形上底和下底分别为x和y,高为h,求梯形面积。

输入要求

 

输入x、y和h。(双精度类型)

输出要求

 

输出梯形面积(保留2位小数)

输入样例

10 20 5

输出样例

75.00

提示

 

来源

NBU OJ
#include<stdio.h>           //C
int main(){
	double x,y,h;
	scanf("%lf%lf%lf",&x,&y,&h);
	printf("%.2f\n",(x+y)*h/2);
	return 0;
}


1206 水费问题

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 6938 | 通过数 : 4315

题目描述

 

为了加强居民的节水意识,某地区制定了以下生活用水收费标准:每户每月用水未超过7吨时,每吨收费1.0元,并加收0.2元每吨的城市污水处理费;用水若超过7吨(含7吨),则每吨收费1.5元,并加收0.4元每吨的城市污水处理费。输入用水量并计算应交水费。(注:非分段计费)

输入要求

 

用水量。(采用浮点类型)

输出要求

应交水费。(保留2位小数)

输入样例

7

输出样例

13.30

提示

 

来源

NBU OJ
#include<stdio.h>       //C
int main(){
	double x,y=0;
	scanf("%lf",&x);
	if(x<7) y=1.2*x;
	else y=1.9*x;
	printf("%.2f\n",y);
	return 0;
}


1207 读了几页书

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 3809 | 通过数 : 2863

题目描述

 

小玲读课外书,第一天读了x页,以后每天要比前一天多读m页,小玲共读了n天,问小玲共读了多少页?

输入要求

 

输入x、m和n。

输出要求

 

输出小玲n天共读了多少页

输入样例

12 6 7

输出样例

210

提示

 

来源

NBU OJ
#include<stdio.h>          //C
int main(){
	int x,m,n,i,s;
	scanf("%d%d%d",&x,&m,&n);
	s=x;
	for(i=1;i<n;i++){
		x+=m;
		s+=x;
	}
	printf("%d\n",s);
	return 0;
} 


1208 简单算术运算

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 7696 | 通过数 : 2952

题目描述

 

输入一个数学表达式,输出运算结果。如输入为3^3,则输出结果27.00;如输入为7*8,则输出结果为56.00。(运算符号局限于+、-、*、/、^ 五种,其余输出“Error”)

输入要求

 

输入形式为a+( -、*、/、^ )b,即一个数字、一个运算符号、再一个数字。如3+8。采用双精度类型

输出要求

 

输出运算结果,如11.00。保留2位小数

输入样例

3+8

输出样例

11.00

提示

 

来源

NBU OJ
#include<stdio.h>                 //C   法1
#include<math.h>
int main(){
	double a,b,s=0;
	char c;
	scanf("%lf%c%lf",&a,&c,&b);
	if(c=='+') printf("%.2f",a+b);
	else if(c=='-') printf("%.2f",a-b);
	else if(c=='*') printf("%.2f",a*b);
	else if(c=='/') printf("%.2f",a/b);
	else if(c=='^') printf("%.2f",pow(a,b));
	else printf("Error");
	printf("\n");
	return 0;
}

#include<stdio.h>     //C     法2
#include<math.h>
int main(){
	double a,b;
	char c;
	scanf("%lf%c%lf",&a,&c,&b);
	switch(c){
		case'+':printf("%.2f",a+b);break;
		case'-':printf("%.2f",a-b);break;
		case'*':printf("%.2f",a*b);break;
		case'/':printf("%.2f",a/b);break;
		case'^':printf("%.2f",pow(a,b));break;
		default:printf("Error");
	}
	printf("\n");
	return 0;
}


1209 幂之和

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 7919 | 通过数 : 3737

题目描述

 

给定一个n 位整数 (n≥3 ),判断它的每个位上的数字的 n 次幂之和是否等于它本身。

例如:3位数153(此时n=3),1^3 + 5^3 + 3^3=153

         4位数8208(此时n=4),8^4+2^4+0^4+8^4=8208

输入要求

 

键盘输入一个整数x

输出要求

 

若x符合条件则输出“Yes”,否则输出“No”。输出不包含双引号。

输入样例

92727

输出样例

Yes

提示

 

来源

NBU OJ

#include<stdio.h>               //C   法1
#include<math.h>
int main(){
    int x,s=0,n=0,b,t,i;
    scanf("%d",&x);
    b=x;
    while(b){
        b/=10;
        n++;//n->x的位数
    }
    t=x;
    for(i=0;i<n;i++){
        s+=pow(t%10,n);// x的每个位上的数字的 n次幂之和
        t/=10;
    }
  //判断它的每个位上的数字的 n次幂之和是否等于它本身 
    if(s==x) printf("Yes\n");
    else printf("No\n");		
    return 0;
} 

#include<stdio.h>         //C     法2
#include<math.h> 
int main(){
	int x,i,a[100],n,s=0,t;
	scanf("%d",&x);
	t=x;
	for(i=0;x>0;i++){
		a[i]=x%10;//储存 x的每个位上的数字
		x/=10;
	}
	n=i;//位数 
	for(i=0;i<n;i++) s+=pow(a[i],n);// x的每个位上的数字的 n次幂之和
  //判断它的每个位上的数字的 n次幂之和是否等于它本身 
	if(s==t) printf("Yes\n");
    else printf("No\n");		
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值