关于矩阵重复元素检测判断条件的粗陋看法
2015-11-22 08:55
302 查看
矩阵重复元素检测
问题描述:编写程序判断任意给定3*3的两维整型数组中是否有相同元素。
输入:从键盘随机输入九个整数,作为数组的元素。
输出:如果数组中有相同元素,则输出“yes”;否则,输出“no”。
提示:OJ所用编译器,不支持bool类型。
样例1:输入 1 2 3 4 5 6 7 8 9 输出 no
样例2:输入 1 1 2 3 4 5 6 7 8 输出 yes
样例3:输入 1 2 3 3 4 5 6 7 8 输出 yes
样例4:输入 1 2 3 4 5 6 7 8 8 输出 yes
#include<stdio.h>
int main(void){
int a[3][3],i,j,m,n,k=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
for(m=0;m<3;m++)
for(n=0;n<3;n++){
if((a[i][j]==a[m]
)&&((i!=m)&&(j!=n)||(j!=n)&&(i==m)||(j==n)&&(i!=m))) k=1;
}
if(k==1)
printf("yes");
else
printf("no");
return 0;
}
对于if判断语句的描述:
if((a[i][j]==a[m]
)&&((i!=m)&&(j!=n)||(j!=n)&&(i==m)||(j==n)&&(i!=m)))
if((a[i][j]==a[m]
)&&!(i==m&&j==n))
if((a[i][j]==a[m]
)&&(i!=m||j!=n))
以上三个都是正确的;
f((a[i][j]==a[m]
)&&(i!=m&&j!=n)错误原因在于:
会把同行不同列或者同列不同行的两个相同数值跳过;
假如A[0][0]和A[0][1]相同为1,满足a[i][j]==a[m]
,但此时i!=m为假,j!=n为真,&&操作会使(i!=m&&j!=n)为假,使判断条件整体为假,if语句不执行。
引用:中国大学慕课 吉林大学2015秋高级语言程序设计
问题描述:编写程序判断任意给定3*3的两维整型数组中是否有相同元素。
输入:从键盘随机输入九个整数,作为数组的元素。
输出:如果数组中有相同元素,则输出“yes”;否则,输出“no”。
提示:OJ所用编译器,不支持bool类型。
样例1:输入 1 2 3 4 5 6 7 8 9 输出 no
样例2:输入 1 1 2 3 4 5 6 7 8 输出 yes
样例3:输入 1 2 3 3 4 5 6 7 8 输出 yes
样例4:输入 1 2 3 4 5 6 7 8 8 输出 yes
#include<stdio.h>
int main(void){
int a[3][3],i,j,m,n,k=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
for(m=0;m<3;m++)
for(n=0;n<3;n++){
if((a[i][j]==a[m]
)&&((i!=m)&&(j!=n)||(j!=n)&&(i==m)||(j==n)&&(i!=m))) k=1;
}
if(k==1)
printf("yes");
else
printf("no");
return 0;
}
对于if判断语句的描述:
if((a[i][j]==a[m]
)&&((i!=m)&&(j!=n)||(j!=n)&&(i==m)||(j==n)&&(i!=m)))
if((a[i][j]==a[m]
)&&!(i==m&&j==n))
if((a[i][j]==a[m]
)&&(i!=m||j!=n))
以上三个都是正确的;
f((a[i][j]==a[m]
)&&(i!=m&&j!=n)错误原因在于:
会把同行不同列或者同列不同行的两个相同数值跳过;
假如A[0][0]和A[0][1]相同为1,满足a[i][j]==a[m]
,但此时i!=m为假,j!=n为真,&&操作会使(i!=m&&j!=n)为假,使判断条件整体为假,if语句不执行。
引用:中国大学慕课 吉林大学2015秋高级语言程序设计
相关文章推荐
- linux下tar命令参数详解
- Mac终端编译运行C++
- matlab:cell的元素的调用—— acell(2)相比acell{2}
- C#调用java类、jar包方法
- Sailfish OS 开发商 Jolla 融资失败,裁员过半
- ASP.NET MVC- ActionFilter的使用
- JS实现别踩白块小游戏
- GoogleDoc - 温故而知新Activity生命周期方法
- 推荐个好用的安卓记事本便签软件
- matlab:把cell中的某个元素删去
- java API中Util包
- JQuery零碎知识点归纳
- 单向链表 (Singly linked list) 的C++实现
- github android优秀的开源项目、作者推荐
- HDR(High Dynamic Range Imaging)在摄影中指高动态范围成像
- 26,字符串函数
- 成为Java高手的25个学习要点
- 检测IE
- Java内存溢出的详细解决方案
- ASP.NET MVC- UrlHelper的用法