目录

7-1 冒泡法排序

7-2 合唱队

7-3 求矩阵各行元素之和

7-4 判断上三角矩阵

7-5 点赞

7-6 刮刮彩票


7-1 冒泡法排序

将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。

本题要求对任意给定的K(<N),输出扫描完第K遍后的中间结果数列。

输入格式:

输入在第1行中给出N和K(1≤K<N≤100),在第2行中给出N个待排序的整数,数字间以空格分隔。

输出格式:

在一行中输出冒泡排序法扫描完第K遍后的中间结果数列,数字间以空格分隔,但末尾不得有多余空格。

输入样例:

6 2
2 3 5 1 6 4

结尾无空行

输出样例:

2 1 3 4 5 6

结尾无空行

#include <stdio.h>
int main(){int N, K;//个数,遍数scanf("%d %d", &N, &K);int a[100];for (int i = 0; i < N; i++) {scanf("%d", &a[i]);}int t;//中间值for (int j = 0; j < K; j++) {for (int i = 0; i < N - 1; i++) {if (a[i] > a[i + 1]) {t = a[i];a[i] = a[i + 1];a[i + 1] = t;}}}for (int i = 0; i < N; i++) {if (i == 0) {printf("%d", a[i]);}else {printf(" %d", a[i]);}}  return 0;
}

7-2 合唱队

合唱队共有N个人(N 为奇数)。为了准备一次演出,老师开始为她们安排合唱队形了。 大家都知道,合唱队形通常是中间高两端低的。老师是这样安排他们的队形的:先让所有的同学按高个儿在前的顺序排成一队。然后,最高的那位同学单独站出来,这是合唱队形的中心,再让第二位同学站在他的左手边,让第三位同学站在他的右手边,再依次向两端安排其他人…… 事先给定所有人的身高,请输出他们站成合唱队形之后的身高顺序。

输入格式:

第一行是一个整数 ,表示合唱队的总人数,已知 N 为奇数,且 1 ≤ N ≤ 51 。第二行是 N 个整数,表示以厘米为单位的所有人的身高。

输出格式:

只有 N 个整数,表示她们按老师的要求站成合唱队形之后的身高顺序。最后一个数据后面无空格

输入样例:

7
154 160 157 162 159 152 163

结尾无空行

输出样例:

152 157 160 163 162 159 154

结尾无空行

#include <stdio.h>
int main(){//合唱队int N,max=0;//N为奇数,max-最大值scanf("%d", &N);int a[50];for (int i = 0; i < N; i++) {scanf("%d", &a[i]);}int t = N / 2;//从大到小排for (int j = 0; j < N - 1; j++) {for(int i=0;i<N-1;i++){if (a[i] < a[i + 1]) {max = a[i + 1];a[i + 1] = a[i];a[i] = max;}}}int b[51],c=1;for (int i = 0; i < N; i++) {b[t] = a[i];if (i % 2 == 0) {t = t + c;c++;}else{t = t - c;c++;}}for (int i = 0; i < N; i++) {if (i == 0) {printf("%d", b[i]);}else {printf(" %d", b[i]);}}return 0;
}

7-3 求矩阵各行元素之和

本题要求编写程序,求一个给定的m×n矩阵各行元素之和。

输入格式:

输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间

以空格分隔。

输出格式:

每行输出对应矩阵行元素之和。

输入样例:

3 2
6 3
1 -8
3 12

结尾无空行

输出样例:

9
-7
15

结尾无空行

#include<stdio.h>
int main(){
int m, n;scanf("%d %d", &m, &n);int a[6][6];for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {scanf("%d",&a[i][j]);}}int sum;for (int i = 0; i < m; i++) {if (i != 0) {printf("%d\n", sum);}sum = 0;for (int j = 0; j < n; j++) {sum += a[i][j];}}printf("%d\n", sum);return 0;
}

7-4 判断上三角矩阵

上三角矩阵指主对角线以下的元素都为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
#include <stdio.h>
int main(){int T,n;scanf("%d", &T);int a[10][10];int count;//记录数组中零的个数int b[10];//用于判断int l = 0;for (int m = 0; m < T; m++) {scanf("%d", &n);for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {scanf("%d", &a[i][j]);}}count = 0;for (int i = 0; i < n; i++) {for (int j = 0; j < i; j++) {if (i-1>=0 && a[i][j] == 0) {count++;}}}int sum ;sum = 0;for (int i = 1; i <= n - 1; i++) {sum += i;}if (count == sum ) {b[l] = 1;l++;}else {b[l] = 0;l++;}}for (int i = 0; i < T; i++) {if (b[i] == 1) {printf("YES\n");}else {printf("NO\n");}}return 0;
}

7-5 点赞

微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特性。

输入格式:

输入在第一行给出一个正整数N(≤1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F1​⋯FK​”,其中1≤K≤10,Fi​(i=1,⋯,K)是特性标签的编号,我们将所有特性标签从1到1000编号。数字间以空格分隔。

输出格式:

统计所有被点赞的博文中最常出现的那个特性标签,在一行中输出它的编号和出现次数,数字间隔1个空格。如果有并列,则输出编号最大的那个。

输入样例:

4
3 889 233 2
5 100 3 233 2 73
4 3 73 889 2
2 233 123

结尾无空行

输出样例:

233 3

结尾无空行

#include<stdio.h>
int main(){
int n, k,m;
int a[10000] = { 0 }, i, j ; //a数组用来记录数字个数和特征;
scanf("%d", &n);
for (i = 0; i < n; i++)
{scanf("%d", &k);for (j=0; j < k ; j++){scanf("%d", &m);//用数组下标记录特性大小,数组元素来记录个数a[m]++;//记录个数}
}
int x, y = 0;//个数和位置
for (i = 0; i <= 1000; i++)
{if (a[i] >= a[y]){y = i;x = a[i];}
}
printf("%d %d", y, x);return 0;
}

7-6 刮刮彩票

“刮刮彩票”是一款网络游戏里面的一个小游戏。如图所示:

每次游戏玩家会拿到一张彩票,上面会有 9 个数字,分别为数字 1 到数字 9,数字各不重复,并以 3×3 的“九宫格”形式排布在彩票上。

在游戏开始时能看见一个位置上的数字,其他位置上的数字均不可见。你可以选择三个位置的数字刮开,这样玩家就能看见四个位置上的数字了。最后玩家再从 3 横、3 竖、2 斜共 8 个方向中挑选一个方向,方向上三个数字的和可根据下列表格进行兑奖,获得对应数额的金币。

数字合计 获得金币 数字合计 获得金币
6 10,000 16 72
7 36 17 180
8 720 18 119
9 360 19 36
10 80 20 306
11 252 21 1,080
12 108 22 144
13 72 23 1,800
14 54 24 3,600
15 180

现在请你写出一个模拟程序,模拟玩家的游戏过程。

输入格式:

输入第一部分给出一张合法的彩票,即用 3 行 3 列给出 0 至 9 的数字。0 表示的是这个位置上的数字初始时就能看见了,而不是彩票上的数字为 0。

第二部给出玩家刮开的三个位置,分为三行,每行按格式 x y 给出玩家刮开的位置的行号和列号(题目中定义左上角的位置为第 1 行、第 1 列。)。数据保证玩家不会重复刮开已刮开的数字。

最后一部分给出玩家选择的方向,即一个整数: 1 至 3 表示选择横向的第一行、第二行、第三行,4 至 6 表示纵向的第一列、第二列、第三列,7、8分别表示左上到右下的主对角线和右上到左下的副对角线。

输出格式:

对于每一个刮开的操作,在一行中输出玩家能看到的数字。最后对于选择的方向,在一行中输出玩家获得的金币数量。

输入样例:

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

结尾无空行

输出样例:

1
5
6
180

结尾无空行

#include <stdio.h>
int main(){//刮刮彩票int a[3][3];//彩票int i ,j ;//用于循环for (i = 0; i < 3; i++) {for (j = 0; j < 3; j++) {scanf("%d", &a[i][j]);}}int k = 0;//b数组下标int b[9];for (i = 0; i < 3; i++) {for (j = 0; j < 3; j++) {b[k] = a[i][j];k++;}}int min;for (j = 0; j < 8; j++) {for (i = 0; i < 8-j; i++) {//将数组b从小到大排列if (b[i] > b[i + 1]) {min = b[i + 1];b[i + 1] = b[i];b[i] = min;}}}for (i = 1; i <= 9; i++) {//找出0是什么数if (b[i] != i) {b[0] = i;break;}}for (i = 0; i < 3; i++) {//找到数组a中0的位置,替换为b[0]的值for (j = 0; j < 3; j++) {if (a[i][j] == 0) {a[i][j] = b[0];}}}//撕开数字int x, y, z;//撕开数字的大小int m[4], n[4];//记录撕开数字位置for (i = 1; i < 4; i++) {scanf("%d %d", &m[i], &n[i]);}x = a[m[1]-1][n[1]-1];y = a[m[2]-1][n[2]-1];z = a[m[3]-1][n[3]-1];int f,sum;//撕开方向,数字之和scanf("%d", &f);if (f == 1) {sum = a[0][0] + a[0][1] + a[0][2];}else if (f == 2) {sum = a[1][0] + a[1][1] + a[1][2];}else if (f == 3) {sum = a[2][0] + a[2][1] + a[2][2];}else if (f == 4) {sum = a[0][0] + a[1][0] + a[2][0];}else if (f == 5) {sum = a[0][1] + a[1][1] + a[2][1];}else if (f == 6) {sum = a[0][2] + a[1][2] + a[2][2];}else if (f == 7) {sum = a[0][0] + a[1][1] + a[2][2];}else if (f == 8) {sum = a[0][2] + a[1][1] + a[2][0];}int money;//奖金switch (sum) {case 6:money = 10000;break;case 7:money = 36;break;case 8:money = 720;break;case 9:money = 360;break;case 10:money = 80;break;case 11:money = 252;break;case 12:money = 108;break;case 13:money = 72;break;case 14:money = 54;break;case 15:money = 180;break;case 16:money = 72;break;case 17:money = 180;break;case 18:money = 119;break;case 19:money = 36;break;case 20:money = 306;break;case 21:money = 1080;break;case 22:money = 144;break;case 23:money = 1800;break;case 24:money = 3600;break;}printf("%d\n%d\n%d\n%d\n", x, y, z, money);return 0;
}

C2021-05-2相关推荐

  1. Go 中 time.Parse 报错:year/month/day hour/minute/second out of range 时间格式化为什么是 2006-01-02 15:04:05?

    1. 问题现象 在使用 Go 语言的 time.Parse 解析时间时遇到以下错误: func main() {timeParse, err := time.Parse("2006-11-0 ...

  2. [Buzz.Today]2011.05.25

    >> VMWare的Open Source Pass - CloudFoundry VMWare推出了开源Pass:CloudFoundary,但是现在只是支持少数几种语言与环境:Java ...

  3. 互动网计算机频道图书7日销售排行(05.20-05.26)

    互动网计算机频道图书7日销售排行(05.20-05.26) 1.Hadoop权威指南(中文版) 2.人人都是产品经理 3.演讲之禅:一位技术演讲家的自白 内容简介 本书既实用又引人入胜.作为职业演讲家 ...

  4. 函数05 - 零基础入门学习C语言36

    第七章:函数05 让编程改变世界 Change the world by program 函数的嵌套调用 嵌套定义就是在定义一个函数时,其函数体内又包含另一个函数的完整定义. 然而,C语言不能嵌套定义 ...

  5. 数据结构与算法:05 Leetcode同步练习(一)

    Leetcode同步练习(一) 题目01:两数之和 题号:1 难度:简单 https://leetcode-cn.com/problems/two-sum/ 给定一个整数数组 nums 和一个目标值 ...

  6. 05后都上清华了!首批丘成桐数学领军人才名单发布,三位菲尔兹奖得主为其授课,周末就来学校报到...

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 金磊 杨净 发自 凹非寺 量子位 报道 | 公众号 QbitAI 不 ...

  7. 指针05 - 零基础入门学习C语言45

    第八章:指针05 让编程改变世界 Change the world by program 字符串与指针 (1) 用字符数组存放一个字符串,然后输出该字符串. 例题一:定义一个字符数组,对它初始化,然后 ...

  8. 前端性能优化——从 10 多秒到 1.05 秒

    https://lishaoy.net 关于 性能优化 是个大的面,这篇文章主要涉及到 前端 的几个点,如 前端性能优化 的流程.常见技术手段.工具等. 提及 前端性能优化 ,大家应该都会想到 雅虎军 ...

  9. Galaxy Release (v 21.05),众多核心技术栈变更

    2021年6月初,Galaxy Project 正式发布了 release 21.05 版本:随后6月中旬,发布该版本的 announcement 文档.这里总结一下该版本一些主要的更新内容,为关注和 ...

  10. Galaxy Release 20.05 发布,新增多项可视化体验

    Galaxy Project(https://galaxyproject.org/)是在云计算背景下诞生的一个生物信息学可视化分析开源项目. 该项目由美国国家科学基金会(NSF).美国国家人类基因组研 ...

最新文章

  1. 对于oracle varchar 的种种
  2. 微信公众平台前端开发技巧分享
  3. TWebBrowser禁止弹出Alert对话框
  4. MTD/MT/MDD/MD以及LIB/DLL之间的一些联系和问题
  5. java 入门 第二季3
  6. (王道408考研操作系统)第二章进程管理-第二节3:调度算法详解1(FCFS、SJF和HRRN)
  7. 1221. 分割平衡字符串
  8. 安装VS2008错误解决
  9. LCN根据官网改造本项目失败案例
  10. MySQL练习题 (练习表+题目+答案)
  11. VC中实现GB2312、BIG5、Unicode编码转换
  12. python绘制树状excel表格_Python-使用XlsxWriter模块在Excel工作表中绘制柱形图
  13. Latex设置每段前的空格数
  14. 基于项目的协同过滤推荐算法单机版代码实现(包含输出电影-用户评分矩阵模型、项目相似度、推荐结果、平均绝对误差MAE)
  15. uni-app的渲染数据和三种调接口的方法
  16. Base64解码过程必须关注的问题
  17. 关于旋转中心的计算以及运用
  18. 用图形界面实现过独木桥问题
  19. 红米html查看设置,红米怎样查看手机硬件信息
  20. 操作系统学习笔记——北京大学陈向群老师课后及习题答案(2)

热门文章

  1. 使用原生JS封装一个Ajax
  2. mac与linux屏幕共享软件,在 Mac 上使用「信息」远程共享你的电脑屏幕
  3. 黑马程序员——JAVA菜鸟修炼记之天下大势:Java体系鸟瞰
  4. mysql 数据写到本地文件_mysql如何导出数据到本地文件
  5. linux写磁带软件,如何在Linux下安装磁带机
  6. 游戏跨服架构进化之路
  7. 日常工作积累(待续)
  8. 高清加载巨图方案-拒绝压缩图片
  9. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第51讲:PHP中smarty模板技术介绍
  10. 从零开始快速配置个人博客