时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 22825 | 通过数 : 7727
数组a中的10个数按升序排列。从键盘输入一个待插入数key,将其插入到数组中,使数组依然保持升序。
先从键盘输入10个按升序排列的整数,然后再输入一个待插入的数据key。
输出插入后的对应结果,要求依然升序排列。每个数据后面都有空格。
1 3 5 7 9 11 13 15 17 19 6
1 3 5 6 7 9 11 13 15 17 19
NBU OJ
代码:
#include //C 法1
int main(){
int a[11],i,j,t;
for(i=0;i<11;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++){
for(j=0;j<10-i;j++){
if(a[j]>a[j+1])
t=a[j],a[j]=a[j+1],a[j+1]=t;
}
}
for(i=0;i<11;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
#include //C++ 法2
using namespace std;
//{插入排序的核心代码
template
void insertionSort(T& arr){
int preIndex,current;
for(int i=1;i<11;i++){
preIndex=i-1;//已排序序列的最后一个元素的 下标
current=arr[i];//当前待排元素的 值
while(preIndex>=0&&arr[preIndex]>current){
arr[preIndex+1]=arr[preIndex];
preIndex--;
}
arr[preIndex+1]=current;
}
}//插入排序的进一步优化,便是希尔排序(步长为 1,就是简单插入排序)。
//插入排序的核心代码}
int main(){
int a[11],i;
for(i=0;i<11;i++)
scanf("%d",&a[i]);
insertionSort(a);
for(i=0;i<11;i++)
cout<
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 24273 | 通过数 : 7308
有5个整型数据存储在数组中,再输入一个数值key,删除数组中第1个等于key的元素,并将剩余的4个数据输出。如果key不是数组中的元素,则显示not found。
先从键盘输入5个整数,然后再输入一个待删除的数据key。
输出删除后的结果,若不存在则输出not found。输出时每个数后面都有一个空格。
80 65 93 100 81 93
80 65 100 81
NBU OJ
代码:
#include //C
int main(){
int a[6],key,i,set=1;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
scanf("%d",&key);
for(i=0;i<5;i++){
if(a[i]==key) set=0;
}
if(set) printf("not found");
else{
for(i=0;i<5;i++)
if(a[i]!=key) printf("%d ",a[i]);
}
printf("\n");
return 0;
}
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 22918 | 通过数 : 9145
输入10个整数存放在数组中,再逆序显示这10个数。
从键盘输入10个整数。
逆序显示这10个数。每个数据后面都有一个空格,最后一个数据输出后还需要换行。
6 7 9 0 -6 16 18 -90 19 10
10 19 -90 18 16 -6 0 9 7 6
NBU OJ
代码:
#include //C
int main(){
int a[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=9;i>=0;i--)
printf("%d ",a[i]);
printf("\n");
return 0;
}
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 26192 | 通过数 : 9068
期末考试结束了,陈老师找到集训队的同学,希望帮忙开发一个成绩排序的系统。这个应该难不倒集训队员的,先做一个内部小测试吧。随意输入10个学生的成绩,按从高到低的序列显示。
输入10个学生的成绩
输出从高到低的排序结果。
90 80 70 60 50 91 72 18 2 0
91 90 80 72 70 60 50 18 2 0
输出时,每个数据的后面都有一个空格。
NBU OJ
代码:
#include //C
int main(){
int a[10],i,j,t;//t为中间变量
for(i=0;i<10;i++)
scanf("%d",&a[i]);
//冒泡排序
for(i=0;i<9;i++){//n个数的数列总共扫描 n-1次
for(j=0;j<9-i;j++){//每一趟扫描到 a[n-i-2]与a[n-i-1]比较为止结束
if(a[j]
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 16252 | 通过数 : 8908
已知有10个同学的成绩,求最高分和最低分以及相应分数所在的位置。从键盘输入10个整数存放在数组中,假设这10个数互不相同,且无序排列。请找出其中最大数及它在数组中的下标,以及最小数和下标。
从键盘输入10个整数。
找出其中最大数及它在数组中的下标,以及最小数和下标。各占一行。
60 70 90 50 65 76 88 95 91 80
95 7 50 3
NBU OJ
代码:
#include //C
int main(){
int a[10],i,max,min,maxid=0,minid=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=a[0];
min=a[0];
for(i=1;i<10;i++){
if(maxa[i]) min=a[i],minid=i;
}
printf("%d %d\n%d %d\n",max,maxid,min,minid);
return 0;
}
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 15788 | 通过数 : 7957
已知一维数组中的10个元素各不相同,但已按升序排列。查找数组中是否存在值为key的数组元素。如果有,输出相应的下标,否则输出not found。你有什么好方法吗?
先从键盘输入10个升序排列的整数,然后再输入一个待查找的数据key。
输出对应结果。若不存在则输出not found.
6 7 9 10 16 18 20 35 141 150 21
not found
NBU OJ
代码:
#include //C
int main(){
int a[10],key,i,id=0,set=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
scanf("%d",&key);
for(i=0;i<10;i++){
if(a[i]==key) id=i,set=1;
}
if(set) printf("%d\n",id);
else printf("not found\n");
return 0;
}
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 13343 | 通过数 : 6656
从键盘输入一行文本(小于1000字符),统计其中每个英文字母出现的频率,并输出出现过的英文字母及其次数,未出现过的不需要显示。为了简化问题的复杂度,假设在统计过程中不区分字母的大小写,即'A'与'a'被认为是一种字母。
先从键盘输入一行文本。以换行符结束。
输出统计结果。
Studing C Language
'A':2 'C':1 'D':1 'E':1 'G':3 'I':1 'L':1 'N':2 'S':1 'T':1 'U':2
NBU OJ
别人的代码(由于自己的代码运行时间过长,这边就不放出来了):
#include //C
int main(){
char c[1000],a[26];
int i,j,d=0;
gets(c);
for(i=0;i<26;i++)
a[i]='A'+i;
for(i=0;c[i]!='\0';i++){
if(c[i]>='a'&&c[i]<='z') c[i]-=32;
}
for(i=0;i<26;i++){
d=0;
for(j=0;c[j]!='\0';j++){
if(c[j]==a[i]) d++;
}
if(d) printf("'%c':%d\n",a[i],d);
}
return 0;
}
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 10179 | 通过数 : 5551
从键盘输入数值,构成一个3行4列的二维整型数组,设计函数对每个元素执行加1操作,然后在主函数中输出该数组的内容。
输入3行4列的二维数组。
按行列形式输出操作后的数组,每个数字后面都有空格。
1 2 3 4 5 6 7 8 9 10 11 12
2 3 4 5 6 7 8 9 10 11 12 13
#include@-@ //设计函数对二维数组元素执行加一操作 int main() { int a[3][4],i,j; for(i=0;i<3;i++) { for(j=0;j<4;j++) scanf("%d",&a[i][j]); } myadd(a,3); //调用函数 for(i=0;i<3;i++) { for(j=0;j<4;j++) { printf("%d ",a[i][j]); } printf("\n"); } return 0; }
NBU OJ
代码:
#include //C
void myadd(int a[3][4],int h){//设计函数对二维数组元素执行加一操作
int i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
a[i][j]++;
}
int main(){
int a[3][4],i,j;
for(i=0;i<3;i++){
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
}
myadd(a,3);//调用函数
for(i=0;i<3;i++){
for(j=0;j<4;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 9869 | 通过数 : 6051
有一个3*4的矩阵,要求编程求出其中值最大的那个元素。
从键盘输入12个数字组成一个3*4的矩阵。
输出矩阵中的最大值。
1 2 5 3 5 3 4 2 0 6 9 1
9
NBU OJ
代码:
#include //C
int main(){
int a[3][4],i,j,max;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
max=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(max
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 15261 | 通过数 : 7195
有一个3*4的矩阵,要求编程求出其中值最大的那个元素,以及其所在的行号和列号。(如果最大数有多个,则显示第1个出现的数据的信息)
从键盘输入12个数字组成一个3*4的矩阵。
输出矩阵中最大值,以及其所在的行号和列号。如有多个最大值,则显示第1个出现的。
1 2 9 3 5 3 4 2 0 6 9 1
9 0 2
NBU OJ
代码:
#include //C
int main(){
int a[3][4],i,j,max,maxi=0,maxj=0;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
max=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(max
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 12609 | 通过数 : 4756
在两个长度相等的一维整型数组中寻找相同元素。先输入一个整数n表示数组的长度,接着分别输入两个数组的内容,且每个数组内部均无重复数值,请找出两个数组中的相同元素。若存在相同元素输出其相同的元素值,否则输出failure。
数组长度n以及两个数组的内容。
两个数组中相同的值。每个数据占据一行。
6 2 5 6 8 7 1 3 4 5 9 2 0
2 5
数组长度不超过1000
NBU OJ
代码:
#include //C
int main(){
int n,a[100],b[100],i,j,set=1;
scanf("%d",&n);
for(i=0;i
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 14665 | 通过数 : 7793
从键盘输入一个整数n,然后输入n*n个数据建立一个方阵,计算并输出方阵主对角线元素的和。
先输入一个整数n表示方阵的维数。接着输入n*n个数据形成一个方阵
方阵主对角线元素之和。
3 1 2 4 -1 5 6 3 3 9
15
NBU OJ
代码:
#include //C
int main(){
int n,a[100][100],i,j,s=0;
scanf("%d",&n);
for(i=0;i