我是歌手-C语言
创始人
2024-05-24 04:52:52
0

“我是歌手”是成名歌手之间的比赛节目,2轮比赛中观众支持率最低者出局。

这里我们假设有n个歌手进行了m轮比赛,请求出局者(m轮总分最低者)。

输入n个歌手(编号依次为1,2,......n)m轮比赛的成绩,输出出局者(m轮总分b最低者)的编号。若有多个歌手的总分都是最低,则出局者是编号最小者。

输入格式:

输入数据的第一行为一个正整数T(1<=T<=20)表示测试数据的组数。然后是T组测试数据,每组测试数据先输入两个正整数n,m(n,m<=10),然后是m行输入,每行按次序输入n个歌手在该轮的得分(均为非负整数)。

输出格式:

对于每组测试,在一行上输出出局者的编号。

输入样例:

1
3 2
91 92 93
98 95 94

输出样例:

 

#include
#include
#define MAXN 1005
int t, n, m, a[MAXN];//a[MAXN]表示每个歌手在m轮比赛中的总得分
int main()
{scanf("%d", &t);while (t--)
//每次循环表示对于一组数据的处理{memset(a, 0, sizeof a);
//初始化a数组为0,以保证累加歌手得分时不产生干扰scanf("%d%d", &n, &m);for (int i = 0; i < m; i++){
//第一重循环,枚举比赛的轮数for (int j = 0; j < n; j++){
//第二重循环,枚举歌手的分数int x;
//定义x表示每个歌手的当前比赛得分scanf("%d", &x);a[j] += x;
//累加每个歌手的总分}}int k = 0;
//定义变量k表示出局者的编号,以0号歌手为初始值for (int i = 1; i < n; i++)
//循环找出出局者{if (a[i] < a[k])k = i;}printf("%d\n", k + 1);}return 0;
}

使用一个数组来存储每个歌手的总分,然后扫描这个数组,找到总分最低的歌手,并输出编号即可。

  1. 首先定义一个数组a,用于存储每个歌手的总分;
  2. 初始化数组a,使用memset函数,把数组a的每一个元素都设为0;

memset 函数是 C 语言中的内存函数,功能是用一个指定的字符填充一段内存区域,也就是将一段内存区域的内容全部设置为一个字符。

 void *memset(void *s, int c, size_t n);

参数:

  • s:指向要填充的内存区域的指针
  • c:填充的字符
  • n:填充的内存区域的大小(单位:字节)

返回值:指向 s 的指针,也就是填充后的内存区域的首地址。 

  1. 循环读入m轮比赛的成绩,对于每轮的成绩,循环读入n个歌手的成绩,并把读入的每个歌手的成绩加到对应的数组a的元素上;
  2. 定义一个变量k,初始化为0;
  3. 循环扫描数组a,从第一个元素开始,如果a[i]比a[k]更小,则把k设为i;
  4. 最后输出k + 1,因为数组a是从0开始存储的,而歌手的编号是从1开始的。

 如果不使用memset函数,可以通过循环将数组中的每一项赋值为0。

例如:

for (int i = 0; i < n; i++) { a[i] = 0; }

这样就能达到将数组中的每一项赋值为0的目的,与memset函数的作用相同。

上一篇:卸载Node.js

下一篇:shell的变量和引用

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...