珠海高端网站建设报价超级简历网站

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

珠海高端网站建设报价,超级简历网站,广东营销式网站,如何处理公关危机目录 7-1 数组元素循环右移问题(20分) 输入格式: 输出格式: 输入样例: 输出样例: 代码 7-2 找出不是两个数组共有的元素(20分) 输入格式: 输出格式: 输入样例: 输出样例: 代码 7-3 方阵循环右移(20分) 输入格式#xff1a; 输出格式#xff1a; 输入样例…目录 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中存有N0个整数在不允许使用另外数组的前提下将每个整数循环向右移M≥0个位置即将A中的数据由A0​A1​⋯AN−1​变换为AN−M​⋯AN−1​A0​A1​⋯AN−M−1​最后M个数循环移至最前面的M个位置。如果需要考虑程序移动数据的次数尽量少要如何设计移动的方法 输入格式: 每个输入包含一个测试用例第1行输入N1≤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 (i0;in;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 (in-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.hint 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−m1、⋯、n−1、0、1、⋯、n−m−1列。 输入格式 输入第一行给出两个正整数m和n1≤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.hint 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 #includestdio.h int main() {int n,i,max;int a[10]{0};scanf(%d,n);for(i1;in;i)//计算各个各位数字出现的次数{int c;scanf(%d,c);int number10;int b;do{bc%number;cc/number;a[b];}while(c0);}i1;maxa[0];while(i10)//求最大次数{ maxmaxa[i]?max:a[i];i;}printf(%d:,max);for(i0;i10;i)if(maxa[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 代码 #includestdio.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]{},nums1;scanf(%d, n);for (i1;i4;i){numsnums*10;numi%10;}num[0]n%10;int j,k;for(j0;j4;j){num[j]9;num[j]num[j]%10;}knum[3];num[3]num[1];num[1]k; //实现交换 knum[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和列数N3≤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 代码 #includestdio.h int main() {int m,n;scanf(%d %d,m,n);int i,j;int a[m][n];for(i0;im;i){for(j0;jn;j){scanf(%d,a[i][j]);}}int flag;for(i1;im-1;i) //注意本体边界由于局部最大值首先需要有上线左右四个值包围因此在设置范围的时候需要将上下左右去掉一行一列{flag1;for(j1;jn-1;j){if((a[i][j]a[i-1][j])(a[i][j]a[i1][j])(a[i][j]a[i][j-1])(a[i][j]a[i][j1])){printf(%d %d %d\n,a[i][j],i1,j1);flag0; //本题通过flag 0进行判断是否出现局部最大值 }}}if(flag1){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 代码 #includestdio.hint 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; }