解题思路:
将每个芯片看成一份,一共n份,以列为单位,按行检索,将所有显示好芯片的份数保存下来,因为题目中说了
好芯片一定比坏芯片多,我们假设一个极端情况:好芯片的判断结果都是对的,坏芯片的判断结果都是错的。即
判断出来好芯片的份数一定占所有判断结果的多数,结果才可信。
注意事项:
不要忘记回溯:每次循环结束后,令x=0
注意比较浮点数的大小时,有可能会出现是失精度的情况,导致判断错误,故最好乘以最小公倍数,将浮点数的比较全部化为整数的比较,养成好习惯。
参考代码:
#include<iostream> using namespace std ; int a[30][30] ; int main() { int n,x=0 ; cin>>n ; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cin>>a[i][j] ; } } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(a[j][i]==1) { x++ ; } } if(2*x>n) { cout<<i<<" " ; } x=0 ; } return 0 ; }
0.0分
4 人评分
大神老白 (C语言代码)浏览:768 |
C语言程序设计教程(第三版)课后习题7.2 (Java代码)浏览:694 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:658 |
P1002 (C语言代码)浏览:1019 |
母牛的故事 (C语言代码)浏览:992 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:798 |
The 3n + 1 problem (C语言代码)浏览:603 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:590 |
Hello, world! (C语言代码)浏览:766 |
2^k进制数 (C语言描述,蓝桥杯)浏览:1457 |