博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基础训练—芯片测试 -C (有n(2≤n≤20)块芯片,有好有坏,已知好芯片比坏芯片多。每个芯片都能用来测试其他芯片。用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏。而用坏芯片测试其他芯片)
阅读量:3961 次
发布时间:2019-05-24

本文共 879 字,大约阅读时间需要 2 分钟。

问题描述

有n(2≤n≤20)块芯片,有好有坏,已知好芯片比坏芯片多。

  每个芯片都能用来测试其他芯片。用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏。而用坏芯片测试其他芯片时,会随机给出好或是坏的测试结果(即此结果与被测试芯片实际的好坏无关)。
  给出所有芯片的测试结果,问哪些芯片是好芯片。
输入格式
  输入数据第一行为一个整数n,表示芯片个数。
  第二行到第n+1行为nn的一张表,每行n个数据。表中的每个数据为0或1,在这n行中的第i行第j列(1≤i, j≤n)的数据表示用第i块芯片测试第j块芯片时得到的测试结果,1表示好,0表示坏,i=j时一律为1(并不表示该芯片对本身的测试结果。芯片不能对本身进行测试)。
输出格式
  按从小到大的顺序输出所有好芯片的编号
例子
输入

3

1 0 1
0 1 0
1 0 1
输出

1 3

思路:因为,题目中说到好芯片的数量比坏芯片的数量多,因此只要判断每一个芯片的合格次数大于n/2即可。

代码呈上:

#include 
int n;int a[20][20];int num[20]={
0};int main (){
int i,j; scanf("%d",&n); for(i=1;i<=n;i++) for(j=1;j<=n;j++) {
scanf("%d",&a[i][j]); if(a[i][j]==1) {
num[j]++; //记录每一列的1 的个数 ,用于判断是否大于n/2 } } int flag=0;//设置输出格式 for(i=1;i<=n;i++) {
if(num[i]>n/2) {
if(flag==0) {
printf("%d",i); flag=1; } else printf(" %d",i); } } return 0;}

运行示例

在这里插入图片描述

转载地址:http://wnrzi.baihongyu.com/

你可能感兴趣的文章
ubuntu设置开机默认进入字符界面方法
查看>>
chrome 快捷键
查看>>
Linux下buffer和cache的区别
查看>>
程序员不应该再犯的五大编程错误
查看>>
[转载][转帖]Hibernate与Sleep的区别
查看>>
Linux系统的默认编码设置
查看>>
Linux系统调用
查看>>
Linux 信号signal处理机制
查看>>
Linux 信号signal处理函数
查看>>
perror简介
查看>>
linux的system () 函数详解
查看>>
在shell脚本的第一行中,必须写#!/bin/bash
查看>>
一句话##错误 'ASP 0116' 丢失脚本关闭分隔符
查看>>
文件上传漏洞之.htaccess
查看>>
常见网络安全设备默认口令
查看>>
VirtualBox虚拟机网络配置
查看>>
oracle vm virtualbox虚拟机下,CentOS7系统网络配置
查看>>
解决Linux CentOS中cp -f 复制强制覆盖的命令无效的方法
查看>>
wdcpv3升级到v3.2后,多PHP版本共存的安装方法
查看>>
PHP统计当前网站的访问人数,访问信息,被多少次访问。
查看>>