IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Educoder平台 C语言 数组及其应用 -> 正文阅读

[数据结构与算法]Educoder平台 C语言 数组及其应用

第1关:折半查找

任务描述

本关任务:由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?<stdio.h>

#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<N;i++)??

????????printf("%d?",?a[i]);

????printf("\n");

????

????scanf("%d",&m);

????while(low?<=?high)

????{??

????????mid?=?(low?+?high)?/?2;

????????if(m?<?a[mid])

????????????high?=?mid-1;

????????????

????????/*****?以下一行有错误?*****/

????????else?if(m?>?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;

}

第2关:二位数组操作

任务描述

本关任务:输入一个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

提示: 二维数组的数据输入方法为:

 
  1. int a[N][N];
  2. for(i=0; i<N; i++)// 控制行数
  3. for(j=0; j<N; j++) // 控制列数
  4. scanf("%d", &a[i][j]);

/**********?Begin?**********/

#include<stdio.h>

int?main()

{

????int?i,j,n;

????scanf("%d",&n);

????int?a[n][n];

????for(i=0;i<n;i++)

?????for(j=0;j<n;j++)

?????scanf("%d",&a[i][j]);

????for(i=0;i<n;i++)

?????{for(j=0;j<n;j++)

??????{

??????????if(i<0||j<0)

??????????break;

??????????else?if(i==(n-1))

??????????a[i][j]=0;

??????????else?if(i==(n-2)&&j<(n-1))

??????????a[i][j]=0;

??????????else?if(i==(n-3)&&j<(n-2))

??????????a[i][j]=0;

??????????else?if(i==(n-4)&&j<(n-3))

??????????a[i][j]=0;

??????}

?????}

???for(i=0;i<n;i++)

????{

????????for(j=0;j<n;j++)

?????{

?????????printf("%d?",a[i][j]);

?????????if(j%(n-1)==0&&j!=0)

?????????printf("\n");

?????}

????}

?????return?0;

}

/**********?End?**********/

第3关:二维数组的展开

任务描述

本关任务:编写程序,功能是将MN列的二维数组中的字符数据按列的顺序依次放到一个字符串(一维数组)中。 例如,二维数组中的数据为: SSSS YYYY XXXX YYYY 则字符串中的内容应是:SYXYSYXYSYXYSYXY

输入: 第一行为两个整数MN代表数组MN列大小。 第二行开始为输入的二维数组数据。

输出: 处理后输出的一维数组。

相关知识

相关知识略

编程要求

请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写二维数组的展开的小程序。

测试说明

平台会对你编写的代码进行测试:

测试输入: 4 4 SSSS YYYY XXXX YYYY 预期输出: SYXYSYXYSYXYSYXY

/**********?Begin?**********/

#include?<stdio.h>

#define???N???20

int?main()

{

????char?a[N][N];

????int?i,?j,?n,?m;

????scanf("%d?%d",&n,?&m);

????getchar();

????for(i=0;?i<n;?i++){

????????for(j=0;?j<m;?j++)

????????????a[i][j]?=?getchar();

????????getchar();

????}

????for(i=0;?i<m;?i++)

????????for(j=0;?j<n;?j++)

????????????printf("%c",a[j][i]);

????return?0;

}

/**********?End?**********/

第4关:数组元素交换

任务描述

本关任务:有一个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?<stdio.h>

int?main?(void)

{

int?n,i,j,k,c,d;

scanf("%d?%d",&c,&d);

int?a[3][4];

for?(i=0;i<3;i++)

for?(j=0;j<4;j++)

scanf("%d",&a[i][j]);

printf("原矩阵:\n");

for?(i=0;i<3;i++)

{

for?(j=0;j<4;j++)

printf("%d?",a[i][j]);

printf("\n");

}

for(i=0;i<3;i++)

{

k=0;

for(j=1;j<4;j++)

if(a[i][j]>a[i][k])

k=j;

n=a[i][0];a[i][0]=a[i][k];a[i][k]=n;

}

printf("处理后:\n");

for?(i=0;i<3;i++)

{

for?(j=0;j<4;j++)

printf("%d?",a[i][j]);

printf("\n");

}

return?0;

}

/**********?End?**********/

第5关:幻方

任务描述

幻方(Magic Square)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。 幻方也是一种中国传统游戏。旧时在官府、学堂多见。它是将从一到若干个连续的自然数排成纵横各为若干个数的正方形,使在同一行、同一列和同一对角线上的几个数的和都相等。例如有如下所示的一个三阶幻方,幻和为15

492
357
816

本关任务:编写程序判定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<stdio.h>

#define?N?20

int?main()

{

????int?a[N][N];

????int?i,?j;

????int?n,?sum=0,?temp,?t=0,?f=0;

????scanf("%d",?&n);

????for(i=0;?i<n;?i++)

????????for(j=0;?j<n;?j++)

????????????scanf("%d",&a[i][j]);//?输入矩阵

????for(i=0;?i<n;?i++)

????{

????????sum?+=?a[0][i];//求第一行元素和

????}

????

????for(i=1;?i<n;?i++)

????{

????????temp?=?0;

????????for(j=0;?j<n;?j++)

????????{

????????????temp?+=?a[i][j];

????????}

????????if(temp?!=?sum)

????????{

????????????f?=?1;

????????????break;

????????}

????}

????//?判断每列元素和是否和第一行元素和相等

????if(f?==?0)

????{

????????for(i=0;?i<n;?i++)

????{

????????????temp?=?0;

????????????for(j=0;?j<n;?j++)

????????????{

????????????????temp?+=?a[j][i];

????????????}

????????????if(temp?!=?sum)

????????????{

????????????????f?=?1;

????????????????break;

????????????}

????????}

????}

????//?判断对角线元素和是否和第一行元素和相等

????temp?=?0;

????if(f?==?0)

????{

????????for(i=0;?i<n;?i++)

????????{

????????????temp?+=?a[i][i];

????????????t?+=a[i][n-i-1];

????????}

????????if(temp?!=?sum?||?t?!=?sum)?f?=?1;

????}

????//判断反对角线元素和是否和第一行元素和相等

????if(f==0)?printf("Yes");

????else?printf("No");

????return?0;

}

/**********?End?**********/

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-11 15:58:41  更:2021-12-11 15:59:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 15:51:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码