琴海


私信TA

用户名:AiQinHai

访问量:6176

签 名:

他时若遂凌云志,敢笑黄巢不丈夫!

等  级
排  名 2041
经  验 2489
参赛次数 0
文章发表 7
年  龄 22
在职情况 学生
学  校 山东协和学院
专  业 计算机科学与技术

  自我简介:

解题思路:

已知好芯片比坏芯片多。所以我们要取中间数,每列相加,大于中间数的话就是好芯片

捕获.PNG

注意事项:
好芯片比坏芯片多

参考代码:

#include<stdio.h>
int main()
{
	float n;	//已知好芯片比坏芯片多。所以后期我们要取中间数,定义float类型
	int i,j,k=1;//i,j控制循环。k控制输出时芯片的遍历递增
	int a[20][20];//存放好坏芯片检测结果
	int b[20]={0};//此数组的每一个下标存放下标对应的芯片被其他芯片检测合格的次数
	scanf("%f",&n);

	float t=n/2;//取芯片合格的中间数,大于这个数的必定合格

	for(i=0;i<n;i++)//循环输入
		for(j=0;j<n;j++)
			scanf("%d",&a[i][j]);

	for(j=0;j<n;j++)//循环列向遍历
		for(i=0;i<n;i++)
			if(a[i][j]==1)b[j]+=1;//b[j]存放被其他芯片检测合格的次数

	for(i=0;i<n;i++)//遍历b数组
	{
		if(b[i]>t)//如果遍历到的数字大于中间数
			printf("%d ",k);//输出第几个芯片
		k+=1;
	}
	return 0;
}


 

0.0分

8 人评分

  评论区

6666666
2024-03-12 20:40:51
我靠,我是真没想到,膜拜
2023-02-17 15:47:38
666
2022-12-21 11:15:01
大佬的思路真清晰
2022-10-08 16:06:45
  • «
  • 1
  • »