#第1关:排序问题
任务描述
本关任务:将十个数进行从大到小的顺序进行排列。
相关知识(略)
编程要求
根据提示,在右侧编辑器Begin-End处补充代码。
输入
输入十个整数。
输出
以从大到小的顺序输出这个十个数。
测试说明
样例输入:
1 2 3 4 5 6 7 8 9 10
样例输出:
10 9 8 7 6 5 4 3 2 1
#include
int main(void)
{
/*********Begin*********/
int a[10],t,i,j;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(a[j]
#第2关:查找整数
任务描述
题目描述:给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
相关知识(略)
编程要求
根据提示,在右侧编辑器Begin-End处补充代码。
输入
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
输出
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
测试说明
样例输入:
6
1 9 4 8 3 9
9
样例输出:
2
提示:
数据规模与约定。
1 <= n <= 1000
#include
int main(void)
{
/*********Begin*********/
int a[10000],n,x,i,c;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
scanf("%d",&x);
for(i=1;i<=n;i++)
{
if(a[i]==x)
{
printf("%d",i);
c=1;
break;
}
}
if(c==0)
printf("-1");
/*********End**********/
return 0;
}
#第3关:计算数组中元素的最大值及其所在的行列下标值
任务描述
题目描述:按如下函数原型编程从键盘输入一个m行n列的二维数组,然后计算数组中元素的最大值及其所在的行列下标值。其中m和n的值由用户键盘输入。已知m和n的值都不超过10。
相关知识(略)
输入
输入数组大小:"%d,%d"
下面输入数组中元素。
输出
输出格式:
数组大小输入提示信息:"Input m, n:"
数组元素输入提示信息:"Input %d*%d array: "
输出格式:"max=%d, row=%d, col=%d"
样例输入
5,5
1 2 3 4 5
4 5 6 100 2
3 2 1 5 6
1 2 3 5 4
3 5 6 4 8
样例输出
Input m, n:Input 5*5 array:
max=100, row=2, col=4
#include
int main(void)
{
/*********Begin*********/
int a[100][100];
int i,j,max=0,m,n,p,q;
printf("Input m, n:");
scanf("%d,%d",&m,&n);
printf("Input %d*%d array:",m,n);
for(i=0;imax)
{
max=a[i][j];
p=i+1;
q=j+1;
}
}
}
printf("\nmax=%d, row=%d, col=%d",max,p,q);
/*********End**********/
return 0;
}
#第4关:二分查找
任务描述
题目描述:将n个从小到大排序的整数(n<1000000)从1~n进行编号,并一个待查找的整数m,请使用二分法进行查找。
####相关知识(略)
####编程要求
根据提示,在右侧编辑器Begin-End处补充代码。
输入
输入包括3行,第一行为整数n,第二行包括n个整数,以空格分隔,第三行为整数m。
输出
如果能够在序列中找到整数m,则输出编号(如果存在多个编号,返回编号最小的),如果不存在,则输出None。
测试说明
样例输入:
10
1 2 4 5 6 7 8 9 10 11
10
样例输出:
9
#include
int main(void)
{
/*********Begin*********/
int a[100],i,n,m,t,x=1;
scanf("%d",&n);
t=(n/2)+1;
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
scanf("%d",&m);
if(m==a[t])
{
printf("%d",t);
return 0;
}
if(ma[t])
{
for(i=t;i<=n;i++)
{
if(m==a[i])
{
x=0;
printf("%d",i);
break;
}
}
}
if(x==1)
printf("None");
/*********End**********/
return 0;
}
#第5关:鞍点
任务描述
题目描述:找出具有m行n列二维数组Array的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1<=m,n<=10。
相关知识(略)
编程要求
输入
输入数据有多行,第一行有两个数m和n,下面有m行,每行有n个数。
输出
按下列格式输出鞍点:
Array[i][j]=x
其中x代表鞍点,i和j为鞍点所在的数组行和列下标,我们规定数组下标从0开始。
一个二维数组并不一定存在鞍点,此时请输出None
我们保证不会出现两个鞍点的情况,比如:
3 3
1 2 3
1 2 3
3 6 8
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
样例输入:
3 3
1 2 3
4 5 6
7 8 9
样例输出:
Array[0][2]=3
#include
int main(void)
{
/*********Begin*********/
int m,n;
int j,i;
int max,k;
scanf("%d%d",&m,&n);
int a[m][n];
for(i=0;ia[j][k])
break;
}
if(j==m)
{
printf("Array[%d][%d]=%d",i,k,a[i][k]);
break;
}
}
if(i==m)
printf("None");
/*********End**********/
return 0;
}
#第6关:删除最大值
任务描述
题目描述:输入10个互不相同的整数并保存在数组中,找到该最大元素并删除它,输出删除后的数组
相关知识(略)
编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写删除最大值的小程序。
输入
输入10个互不相同整数
输出
输出删除最大元素后的数组
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
样例输入:
1 2 3 4 5 6 7 8 9 0
样例输出:
1 2 3 4 5 6 7 8 0
#include
int main(void)
{
/*********Begin*********/
int a[10],n=0,t,i;
for(i=1;i<=10;i++)
scanf("%d",&a[i]);
for(i=1;i<=10;i++)
{
if(n<=a[i])
{
n=a[i];
t=i;
}
}
for(i=1;i
#第7关:杨辉三角
任务描述
题目描述:还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
相关知识(略)
编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写杨辉三角的小程序。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
输出
打印出杨辉三角图形的10行。格式见题目描述部分。每个整数后面接一个空格来分隔开整数
#include
int main(void)
{
/*********Begin*********/
int s=1,i,j;
printf("1\n");
for(i=2;i<=10;s=1,i++)
{
printf("1 ");
for(j=1;j<=i-2;j++)
printf("%d ",(s=(i-j)*s/j));
printf("1\n");
}
/*********End**********/
return 0;
}