当前位置: 首页 > news >正文

苏州市住房和城乡建设局网站首页/关键词挖掘ppt

苏州市住房和城乡建设局网站首页,关键词挖掘ppt,智慧团建网站登录平台pc端,阿里云建网站目录 7-1 数组元素循环右移问题(20分) 输入格式: 输出格式: 输入样例: 输出样例: 代码 7-2 找出不是两个数组共有的元素(20分) 输入格式: 输出格式: 输入样例: 输出样例: 代码 7-3 方阵循环右移(20分) 输入格式: 输出格式: 输入样例&…

目录

7-1 数组元素循环右移问题(20分)

输入格式:

输出格式:

输入样例:

输出样例:

代码

7-2 找出不是两个数组共有的元素(20分)

输入格式:

输出格式:

输入样例:

输出样例:

代码

7-3 方阵循环右移(20分)

输入格式:

输出格式:

输入样例:

输出样例:

代码

7-4 求一批整数中出现最多的个位数字(20分)

输入格式:

输出格式:

输入样例:

输出样例:

7-5 判断上三角矩阵(15分)

输入格式:

输出格式:

输入样例:

输出样例:

代码

7-6 数字加密(15分)

输入格式:

输出格式:

输入样例:

输出样例:

代码

7-7 求矩阵的局部极大值(15分)

输入格式:

输出格式:

输入样例1:

输出样例1:

输入样例2:

输出样例2:

代码

7-8 组个最小数(20分)

输入格式:

输出格式:

输入样例:

输出样例:

代码


7-1 数组元素循环右移问题(20分)

一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0​A1​⋯AN−1​)变换为(AN−M​⋯AN−1​A0​A1​⋯AN−M−1​)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?

输入格式:

每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。

输出格式:

在一行中输出循环右移M位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。

输入样例:

6 2
1 2 3 4 5 6

输出样例:

5 6 1 2 3 4

编译器:GCC

代码

#include <stdio.h>
int main()
{int n = 0;//存储待接收的整数序列的元素个数int m = 0;//存储右移的步数int arr[100] = { 0 };//存储待接收的整数序列int i = 0;//循环变量int j = 0;//循环变量,表示循环中已经右移的步数int temp = 0;//临时变量,用于帮助各元素数据的移动scanf("%d %d", &n,&m);for (i=0;i<n;i++){scanf("%d",&arr[i]);}for (j = 0; j < m; j++)  //每一轮循环实现右移一个位置,总共进行m轮循环,即右移m个位置{//实现右移一个位置temp = arr[n - 1];for (i = n - 2; i >= 0; i--){arr[i + 1] = arr[i];}arr[0] = temp;}for (i = 0; i < n; i++)//设置循环打印数组前n个元素{					   //并设置判断语句进行判断,除了最后一个元素后面没空格,前面每个元素后面都有空格printf("%d", arr[i]);if (i<n-1){printf(" ");}}return 0;                      
}

7-2 找出不是两个数组共有的元素(20分)

给定两个整型数组,本题要求找出不是两者共有的元素。

输入格式:

输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。

输出格式:

在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。

输入样例:

10 3 -5 2 8 0 3 5 -15 9 100
11 6 4 8 2 6 -5 9 0 100 8 1

输出样例:

3 5 -15 6 4 1

编译器:GCC

代码

#include <stdio.h>int main()
{// 目标数组 int a1[20] = { 0 };// 目标数组int a2[20] = { 0 };// 临时数组int a3[20] = { 0 };// 分别表示两个数组的长度(元素个数)int n, m;// 先输入的表示 a1 的长度,然后输入目标数组 a1 的每个元素scanf("%d", &n);for (int i = 0; i < n; i++){scanf("%d", &a1[i]);}// 先输入的表示 a2 的长度,然后输入目标数组 a2 的每个元素scanf("%d", &m);for (int i = 0; i < m; i++){scanf("%d", &a2[i]);}// k 为临时数组的索引int k = 0;for (int i = 0; i < n; i++){// flag表示假设当前元素在另一个数组中不出现int flag = 1;for (int j = 0; j < m; j++){// 如果找到相同的元素,就将 flag 置为 0 ,假设不成立if (a1[i] == a2[j]){flag = 0;}}// 如果假设成功,就将当前元素放入临时数组if (flag) a3[k ++] = a1[i];}for (int i = 0; i < m; i++){int flag = 1;for (int j = 0; j < n; j++){if (a2[i] == a1[j]){flag = 0;}}if (flag) a3[k++] = a2[i];}// 打印临时数组的数据,重复的只打印一次for (int i = 0; i < k; i++){int flag = 1;// 向前寻找看有没有相同元素for (int j = 0; j < i; j++){// 有就将 flag 置为 0 ,后面的 if 就不进去 if (a3[i] == a3[j]){flag = 0;}}// 如果 flag 为 1 ,说明当前的元素没有重复,进入 ifif (flag){// 控制输入格式,题目会检查if (!i){// 如果是第一个元素就不打印空格printf("%d", a3[i]);}else{// 将空格往前打印,因为最后不能有空格printf(" %d", a3[i]);}}}return 0;
}

7-3 方阵循环右移(20分)

本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0、1、⋯、n−1列变换为第n−m、n−m+1、⋯、n−1、0、1、⋯、n−m−1列。

输入格式:

输入第一行给出两个正整数m和n(1≤n≤6)。接下来一共n行,每行n个整数,表示一个n阶的方阵。

输出格式:

按照输入格式输出移动后的方阵:即输出n行,每行n个整数,每个整数后输出一个空格。

输入样例:

2 3
1 2 3
4 5 6
7 8 9

输出样例:

2 3 1 
5 6 4 
8 9 7 

编译器:GCC

代码

#include <stdio.h>int main()
{int m, n, i, j, k, l;int det[6][6] = { 0 }, temp[6][6] = { 0 };scanf("%d %d", &m, &n);for (i = 0; i < n; i++)for (j = 0; j < n; j++)scanf("%d", &det[i][j]);//存入数据for (i = 0; i < m; i++)//右移m次{for (j = 0; j < n; j++)for (k = 0; k < n; k++)//三重循环,一次判断处理数据{if (k != n - 1)temp[j][k + 1] = det[j][k];elsetemp[j][0] = det[j][k];//数据从最后一列换到第一列}//将数据右移后存入temp数组中for (l = 0; l < n; l++)for (j = 0; j < n; j++)det[l][j] = temp[l][j];//逐个将temp中的数据复制到det中,为下次循环准备}for (i = 0; i < n; i++){for (j = 0; j < n; j++)printf("%d ", det[i][j]);printf("\n");//行循环结束换行}return 0;
}

7-4 求一批整数中出现最多的个位数字(20分)

给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。

输入格式:

输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。

输出格式:

在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。

输入样例:

3
1234 2345 3456

输出样例:

3: 3 4

编译器:GCC

#include<stdio.h>
int main()
{int n,i,max;int a[10]={0};scanf("%d",&n);for(i=1;i<=n;i++)//计算各个各位数字出现的次数{int c;scanf("%d",&c);int number=10;int b;do{b=c%number;c=c/number;a[b]++;}while(c>0);}i=1;max=a[0];while(i<10)//求最大次数{   max=max>a[i]?max:a[i];i++;}printf("%d:",max);for(i=0;i<10;i++)if(max==a[i])printf(" %d",i);return 0;
}

7-5 判断上三角矩阵(15分)

上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。

本题要求编写程序,判断一个给定的方阵是否上三角矩阵。

输入格式:

输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。

输出格式:

每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。

输入样例:

3
3
1 2 3
0 4 5
0 0 6
2
1 0
-8 2
3
1 2 3
1 4 5
0 -1 6

输出样例:

YES
NO
NO

编译器:GCC

代码

 
#include<stdio.h>
int main()
{int T;   // 待测矩阵的个数int matrix[10][10];   // 方阵scanf("%d", &T);for (int n = 1; n <= T; n++)   // 依次判断T个方阵是否是上三角矩阵{int m;   // m阶方阵scanf("%d", &m);for (int i = 0; i < m; i++)   //输入数据{for (int j = 0; j < m; j++){scanf("%d", &matrix[i][j]);}}int flag = 1;   // 标志性变量,为1表示该方阵为上三角矩阵// 判断其是否是上三角矩阵// 上三角矩阵的特点:主对角线下方全为0// 主对角线下方元素特点:行号大于列号for (int i = 0; i < m; i++){for (int j = 0; j < m; j++){if (j >= i)   // 列号大于等于行号,继续{continue;}if (matrix[i][j] != 0)   // 主对角线下方但凡有一个元素不为0,则其不是上三角矩阵{flag = 0;}}}if (flag == 1)   // 本次判断的矩阵为上三角矩阵{printf("YES\n");}else{printf("NO\n");   // 非上三角矩阵}}return 0;
}

7-6 数字加密(15分)

输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。例如输入1257,经过加9取余后得到新数字0146,再经过两次换位后得到4601。

输入格式:

输入在一行中给出一个四位的整数x,即要求被加密的数。

输出格式:

在一行中按照格式“The encrypted number is V”输出加密后得到的新数V。

输入样例:

1257

输出样例:

The encrypted number is 4601

编译器:GCC

代码

 
#include <stdio.h>
int main(void)
{int n,i,num[4]={},nums=1;scanf("%d", &n);for (i=1;i<4;i++){nums=nums*10;num[i]=(n/nums)%10;}num[0]=n%10;int j,k;for(j=0;j<4;j++){num[j]+=9;num[j]=num[j]%10;}k=num[3];num[3]=num[1];num[1]=k;		//实现交换 k=num[2];num[2]=num[0];num[0]=k;printf("The encrypted number is %d%d%d%d", num[3], num[2], num[1], num[0]);return 0;
}

7-7 求矩阵的局部极大值(15分)

给定M行N列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,那么就称元素A[i][j]是矩阵的局部极大值。本题要求给定矩阵的全部局部极大值及其所在的位置。

输入格式:

输入在第一行中给出矩阵A的行数M和列数N(3≤M,N≤20);最后M行,每行给出A在该行的N个元素的值。数字间以空格分隔。

输出格式:

每行按照“元素值 行号 列号”的格式输出一个局部极大值,其中行、列编号从1开始。要求按照行号递增输出;若同行有超过1个局部极大值,则该行按列号递增输出。若没有局部极大值,则输出“None 总行数 总列数”。

输入样例1:

4 5
1 1 1 1 1
1 3 9 3 1
1 5 3 5 1
1 1 1 1 1

输出样例1:

9 2 3
5 3 2
5 3 4

输入样例2:

3 5
1 1 1 1 1
9 3 9 9 1
1 5 3 5 1

输出样例2:

None 3 5

编译器:GCC

代码

#include<stdio.h>
int main()
{int m,n;scanf("%d %d",&m,&n);int i,j;int a[m][n];for(i=0;i<m;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);}}int flag;for(i=1;i<m-1;i++)    //注意本体边界,由于局部最大值首先需要有上线左右四个值包围,因此在设置范围的时候需要将上下左右去掉一行一列{flag=1;for(j=1;j<n-1;j++){if((a[i][j]>a[i-1][j])&&(a[i][j]>a[i+1][j])&&(a[i][j]>a[i][j-1])&&(a[i][j]>a[i][j+1])){printf("%d %d %d\n",a[i][j],i+1,j+1);flag=0;    //本题通过flag == 0进行判断是否出现局部最大值 }}}if(flag==1){printf("None %d %d",m,n);}return 0;}

7-8 组个最小数(20分)

给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。

现给定数字,请编写程序输出能够组成的最小的数。

输入格式:

输入在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数。整数间用一个空格分隔。10个数字的总个数不超过50,且至少拥有1个非0的数字。

输出格式:

在一行中输出能够组成的最小的数。

输入样例:

2 2 0 0 0 3 0 0 1 0

输出样例:

10015558

编译器:GCC

代码

#include<stdio.h>int main() {// 存储数字 0~9 对应的个数int numberCounts[10];for (int i = 0; i < 10; i++) {scanf("%d", &numberCounts[i]);}// 根据 numberCounts 中存储的各位数字个数初始化 digits 数组int digits[50];int index = 0;for (int i = 0; i < 10; i++) {for (int j = 1; j <= numberCounts[i]; j++, index++) {digits[index] = i;}}// 如果第一个数字为 0,则将其与第一个非 0 数字交换位置if (digits[0] == 0) {// 从剩下的数字中找到第一个非 0 数字并与 digits[0] 交换for (int i = 1; i < index; i++) {if (digits[i] != 0) {int temp = digits[0];digits[0] = digits[i];digits[i] = temp;break;}}}for (int k = 0; k < index; k++) {printf("%d", digits[k]);}return 0;
}

http://www.jmfq.cn/news/5305681.html

相关文章:

  • 淄博周村网站建设公司/合肥seo推广公司哪家好
  • 建设一个门户网站需要多久/杭州seo网站推广排名
  • 衡水网站建设优化排名/北京网站建设开发公司
  • 网站建设怎么外包好/系统优化工具
  • 中国知名网站建设公司/谷歌网站
  • 制作精美网站建设独立/媒体软文发稿
  • 加强二级网站建设 招生/十大推广app平台
  • 网站优化建设桂林/韩国网站
  • 外国纪录片网站机场建设/广告精准推广平台
  • 江苏工程建设信息网站/百度快照怎么优化排名
  • 新疆乌鲁木齐建设职业学校网站/湖南株洲疫情最新情况
  • 龙岗区住房和建设局官方网站/如何注册百度账号
  • 营销网站建设实训总结/网站免费制作平台
  • 网站建设的书 推荐/论坛seo教程
  • 山西住房建设厅官方网站/本周热点新闻事件
  • 内蒙古网站建设价格/免费b站推广网站详情
  • 传奇私服怎么建设网站/市场调研报告word模板
  • 网站建设仟首先金手指15/网络营销与推广
  • 有经验的佛山网站建设/谷歌商店paypal下载官网
  • 国内做航模比较好的网站/百度快照推广
  • 免费的网站程序/如何做网站设计
  • 网站建设科技公司外部环境分析/全媒体运营师培训机构
  • 网站 宣传册/债务优化是什么意思
  • 衢州网站推广/推广渠道有哪些方式
  • 中粮网站是哪个公司做的/网络营销带来的效果
  • 杭州网站推广宣传/网店推广方案范文
  • 网页版微信登录提示二维码已失效/seo优化技术培训
  • 交互网站模板/培训机构网站
  • 人工客服咨询/优化服务内容
  • 长春做网站哪个公司好/完整企业网站模板