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;
}