100
任务描述
本关任务:由N
个有序整数组成的数列已放在一维数组中,给定程序的功能是:利用折半查找法查找整数m
在数组中的位置。若找到,返回其下标值,否则返回-1
。
相关知识
相关知识略
编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End
区域内进行代码补充,完成编写折半查找的小程序。
测试说明
平台会对你编写的代码进行测试:
测试输入: 5
预期输出: -5 4 9 15 28 45 66 89 100 180
Not be found!
测试输入: 9
预期输出: -5 4 9 15 28 45 66 89 100 180
m=9,index=2
开始你的任务吧,祝你成功!
#include
#define N 10
int main()
{
int i, a[N]={-5,4,9,15,28,45,66,89,100,180 }, k=-1, m;
int low=0, high=N-1, mid;
for(i=0;i a[mid]) low=mid+1;
/***** 以下一行有错误 *****/
else {k=mid;break;}
}
if(k>=0)
printf("m=%d,index=%d\n",m,k);
else
printf("Not be found!\n");
return 0;
}
200
任务描述
本关任务:输入一个N×N
的二维数组。编写程序将数组左下半三角元素的值全部置成0
。 例如: a
数组元素原来的值为: 1 2 3
4 5 6
7 8 9
处理后a
数组中元素的值应为: 0 2 3
0 0 6
0 0 0
输入: 第一行为一个整数N
代表数组维数。 第二行开始为NxN
维数组的数据。
输出: 数组处理后的结果。
相关知识
相关知识略
编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End
区域内进行代码补充,完成编写二位数组操作的小程序。
测试说明
平台会对你编写的代码进行测试:
测试输入: 3
1 2 3
4 5 6
7 8 9
预期输出: 0 2 3
0 0 6
0 0 0
提示: 二维数组的数据输入方法为:
int a[N][N];
for(i=0; i
for(j=0; j
scanf("%d", &a[i][j]);
开始你的任务吧,祝你成功!
/********** Begin **********/
#include
int main(){
int n,i,j;
scanf("%d",&n);
int a[n][n];
for(i=0;i
100
任务描述
本关任务:编写程序,功能是将M
行N
列的二维数组中的字符数据按列的顺序依次放到一个字符串(一维数组)中。 例如,二维数组中的数据为: SSSS
YYYY
XXXX
YYYY
则字符串中的内容应是:SYXYSYXYSYXYSYXY
。
输入: 第一行为两个整数M
和N
代表数组M
行N
列大小。 第二行开始为输入的二维数组数据。
输出: 处理后输出的一维数组。
相关知识
相关知识略
编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End
区域内进行代码补充,完成编写二维数组的展开的小程序。
测试说明
平台会对你编写的代码进行测试:
测试输入: 4 4
SSSS
YYYY
XXXX
YYYY
预期输出: SYXYSYXYSYXYSYXY
开始你的任务吧,祝你成功!
/********** Begin **********/
#include
int main(){
int m,n,i,j;
scanf("%d %d",&m,&n);
char a[m][n];
getchar();//因为scanf输入的有enter键(就是“\n”换行键),而使用getchar会吸取enter键,所以先用这个从缓冲区中吸取这个enter键
for(i=0;i
200
任务描述
本关任务:有一个3*4
矩阵,找出每行中最大的元素并与第1
列元素交换。具体要求如下: 1.
使用二维数组存放该3*4
矩阵 2.
为二维数组输入数据。 3.
输出原矩阵并和处理后的矩阵进行比较。
输入: 第一行为两个整数,表示3x4
的矩阵。 第二行开始为矩阵赋值。
输出: 第一行输出提示"原矩阵:"。 第二行开始输出原矩阵数据。 接下来一行输出提示"处理后:"。 接下来一行开始输出处理后的矩阵数据。
相关知识
相关知识略
编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End
区域内进行代码补充,完成编写数组元素交换的小程序。
测试说明
平台会对你编写的代码进行测试:
测试输入: 3 4
1 2 3 4
5 6 7 8
9 10 11 12
预期输出: 原矩阵:
1 2 3 4
5 6 7 8
9 10 11 12
处理后:
4 2 3 1
8 6 7 5
12 10 11 9
开始你的任务吧,祝你成功!
/********** Begin **********/
#include
int main(){
int i,j,n,m,t,k,isPrime;
scanf("%d %d",&n,&m);
int a[n][m];
for(i=0;ia[i][k]){
k=j;
a[i][0]=a[i][k];
isPrime=0;
}
}
if(isPrime==0)
a[i][k]=t;
}
printf("处理后:\n");
for(i=0;i
300
任务描述
幻方(Magic Square
)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。 幻方也是一种中国传统游戏。旧时在官府、学堂多见。它是将从一到若干个连续的自然数排成纵横各为若干个数的正方形,使在同一行、同一列和同一对角线上的几个数的和都相等。例如有如下所示的一个三阶幻方,幻和为15
。
4 | 9 | 2 |
---|---|---|
3 | 5 | 7 |
8 | 1 | 6 |
本关任务:编写程序判定N×N
(规定N
为奇数,且N<20
)的矩阵是否是"幻方",(N×N
的二维数组各元素的值由用户在程序运行时输入) "幻方"的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。
输入: 第一行为一个整数,代表矩阵维数N
。 第二行开始为矩阵输入数据。
输出: 判断结果,若是幻方则输出Yes
不是则输出No
。
相关知识
相关知识略
编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End
区域内进行代码补充,完成编写幻方的小程序。
测试说明
平台会对你编写的代码进行测试:
测试输入: 3
4 9 2
3 5 7
8 1 6
预期输出: Yes
开始你的任务吧,祝你成功!
/********** Begin **********/
#include
int main()
{
int n,i,j,sum=0,num=0,isPrime=1;
scanf("%d",&n);
int a[n][n];
for(i=0;i