每日学习 1146--1152

1146 排列组合

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

提交数 : 4091 | 通过数 : 2597

题目描述

计算从m个不同的数中取n个的取法

输入要求

从键盘输入m和n。

输出要求

输出计算结果。

输入样例

5 3

输出样例

10

提示

 

来源

NBU OJ

代码:

#include<stdio.h>         //C
int jc(int n){
	int i,j=1;
	for(i=n;i>1;i--)
		j*=i;
	return j;
}
int main(){
	int m,n;
	scanf("%d%d",&m,&n);
	printf("%d\n",jc(m)/jc(n)/jc(m-n));
	return 0;
} 


1147 简单评委打分

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

提交数 : 19865 | 通过数 : 9974

题目描述

某学生参加项目结题汇报,假设有8位老师作为评委。计算学生最终得分的方法如下:首先去掉一个最高分和一个最低分,然后计算剩余6个分数的平均值,所得结果就是该学生的最后得分。编程实现此功能。

输入要求

先从键盘输入8个分数。

输出要求

去掉一个最高分和一个最低分后计算平均得分。保留2位小数

输入样例

9.33 9.10 8.77 8.90 9.45 8.53 9.08 9.23

输出样例

9.07

提示

 

来源

NBU OJ

代码:

#include<stdio.h>              //C
int main(){
	double a[10],s=0,max,min;
	int i;
	for(i=0;i<8;i++){
		scanf("%lf",&a[i]);
		s+=a[i];
	}
	max=min=a[0];
	for(i=1;i<8;i++){
		if(max<a[i]) max=a[i];
		if(min>a[i]) min=a[i];
	}
	printf("%.2f\n",(s-max-min)/6);
	return 0;
}


1148 数字字符出现频率

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

提交数 : 13604 | 通过数 : 6713

题目描述

 

从键盘输入一行文本,统计其中数字字符0~9各自出现的频率并输出。没有出现过的数字字符不用显示。

输入要求

从键盘输入一行文本。以换行符结束。

输出要求

 

输出统计结果。输出内容按照从0到9顺序输出,每个数字的信息占一行,如“0:2”表示数字字符0出现了2次。没有出现过的数字字符不用显示。


 

输入样例

Hello No 007.

输出样例

0:2
7:1

提示

 

输出内容中:

0:2 表示数字字符0出现了2次

7:1 表示数字字符7出现了1次

另,字符数组长度可开到1000

来源

NBU OJ

代码:

#include<stdio.h>         //C
int main(){
	char c;
	int i,a[10]={0};
	while((c=getchar())!='\n'){
		if(c>='0'&&c<='9') a[c-'0']++;
	}
	for(i=0;i<=9;i++){
		if(a[i]) printf("%d:%d\n",i,a[i]);
	}
	return 0;
}


1149 一维数组基本练习

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

提交数 : 17540 | 通过数 : 9926

题目描述

已知某学生期中考试4门课程的成绩,请将这4个成绩存放到数组中,然后计算其本次考试的平均成绩并输出。

输入要求

从键盘输入4个成绩。

输出要求

输出平均成绩。保留一位小数。

输入样例

88 91 80 79

输出样例

84.5

提示

 

来源

NBU OJ

代码:

#include<stdio.h>             //C
int main(){
	double a[10],s=0;
	int i;
	for(i=0;i<4;i++){
		scanf("%lf",&a[i]);
		s+=a[i];
	}
	printf("%.1f\n",s/4);
	return 0;
}


1150 文章中字符数统计

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

提交数 : 11749 | 通过数 : 5139

题目描述

有一篇文章,共有3段文字,每段不超过1000个字符。要求统计其中英文大写字母、英文小写字母、数字的个数。

输入要求

输入3段文字。

输出要求

输出统计结果,依次显示大写英文字母个数,小写英文字母个数,数字字符个数。

输入样例

Technology firm Apple has become the most valuable company in the US, with its market capitalisation overtaking that of Exxon Mobil.
Apple had briefly become the largest US firm on Tuesday, before dropping back below the oil giant.
But Apple has now managed to stay in the top spot at the close of Wall Street for the first time.

输出样例

14 252 0

提示

 

来源

NBU OJ

代码:

#include<stdio.h>           //C
#include<string.h>
int main(){
	char s[1000],s1[1000],s2[1000];
	int i,d=0,x=0,n=0;
	gets(s);
	gets(s1);
	gets(s2);
	strcat(s,s1);
	strcat(s,s2);
	for(i=0;i<strlen(s);i++){
		if(s[i]>='A'&&s[i]<='Z') d++;
        else if(s[i]>='a'&&s[i]<='z') x++;
        else if(s[i]>='0'&&s[i]<='9') n++;
	}
	printf("%d %d %d\n",d,x,n);
	return 0;
}


1151 无序数组的查找

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

提交数 : 25062 | 通过数 : 10368

题目描述

已知一维数组中的10个元素各不相同,查找数组中是否存在值为key的数组元素。如果有,输出相应的下标,否则输出not found。已知数组无序排列。

输入要求

先从键盘输入10个整数。然后再输入一个待查找的数据key。

输出要求

若存在,则输出该数所在位置的下标值。若不存在则输出"not found"(输出不包含双引号)。

输入样例

6 70 -9 80 83 54 3 88 10 2
80

输出样例

3

提示

数组的下标从0开始

来源

NBU OJ

代码:

#include<stdio.h>            //C
int main(){
	int a[10],key,i,set=1;
	for(i=0;i<10;i++)
	    scanf("%d",&a[i]);
	scanf("%d",&key);
	for(i=0;i<10;i++){
		if(a[i]==key){
			printf("%d\n",i);
			set=0;
		}
	}
	if(set) printf("not found\n");
	return 0;
}


1152 最大值和最小值

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

提交数 : 17315 | 通过数 : 8749

题目描述

给定任意的10个整数,从中找出最大值和最小值并输出。

输入要求

输入任意的10个整数。

输出要求

输出这10个数中的最大值和最小值。各占一行。

输入样例

1 2 5 4 7 8 3 54 13 20

输出样例

54
1

模板

#include<stdio.h>
#define LEN 10
@-@  //设计求最大值的函数
@-@  //设计求最小值的函数

int main()
{
    int x[LEN],maxnum,minnum,i;
	for(i=0;i<LEN;i++)
		scanf("%d",&x[i]);
	maxnum=max(x,LEN); //调用函数求最大值 
	minnum=min(x,LEN); //调用函数求最小值  
    printf("%d\n%d\n",maxnum,minnum);
	return 0;
}

提示

 

来源

NBU OJ

代码:

#include<stdio.h>               //C
#define LEN 10
int max(int x[LEN],int n){//设计求最大值的函数
	int i,max=x[0];
	for(i=1;i<n;i++){
		if(max<x[i]) max=x[i];
	}
	return max;
}
int min(int x[LEN],int n){//设计求最小值的函数
	int i,min=x[0];
	for(i=1;i<n;i++){
		if(min>x[i]) min=x[i];
	}
	return min;
}

int main()
{
    int x[LEN],maxnum,minnum,i;
	for(i=0;i<LEN;i++)
		scanf("%d",&x[i]);
	maxnum=max(x,LEN); //调用函数求最大值 
	minnum=min(x,LEN); //调用函数求最小值  
    printf("%d\n%d\n",maxnum,minnum);
	return 0;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值