解题思路:
将每个芯片看成一份,一共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语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:1078 |
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:668 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:467 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:512 |
简单的a+b (C语言代码)浏览:635 |
C二级辅导-等差数列 (C语言代码)浏览:770 |
哥德巴赫曾猜测 (C语言代码)浏览:715 |
母牛的故事 (C语言代码)浏览:498 |
P1001 (Java代码)浏览:687 |
Manchester-汽水瓶问题浏览:4159 |