输入第一行包括一个数:N(1<=N<=100),表示矩阵的维数。 接下来的N行,每行包括N个数,表示N*N矩阵的元素。
可能有多组测试数据,对于每组数据, 输出"Yes!”表示矩阵为对称矩阵。 输出"No!”表示矩阵不是对称矩阵。
4 16 19 16 6 19 16 14 5 16 14 16 3 6 5 3 16 2 1 2 3 4
Yes! No!
#include<iostream> using namespace std; int main() { int n; while(scanf("%d",&n)!=EOF) { int a[101][101]; int i,j; //输入数据 for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); //判断对称 int flag=1; for(i=0;i<n;i++) { for(j=i;j<n;j++) { if(a[i][j]!=a[j][i]) { flag=0; break; } } } if(flag==1) printf("Yes!\n"); else printf("No!\n"); } return 0; }
while True:
try:
a, matrix = int(input()), []
for i in range(a):
matrix.append(input().split())
res=True
for i in range(a):
for j in range(a):
if matrix[i][j]!=matrix[j][i]:
res=False
break
print("Yes!" if res else "No!")
except:
break
while True:
try:
a, matrix = int(input()), []
for i in range(a):
matrix.append(tuple(input().split()))
print("Yes!" if matrix==list(zip(*matrix)) else "No!")
except:
break
#include<stdio.h>//判断是否对称a[i][j]==a[j][i] int main() { int n,a[100][100],i,j,key; scanf("%d",&n);//输入 for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); key=1; for(i=0;i<n;i++)//遍历 for(j=i+1;j<n;j++)//直接对比上三角优化运行时间 if(a[i][j]!=a[j][i]) { key=0;break; } if(key) printf("Yes!"); else printf("No!"); }
#include <iostream> using namespace std; int main() { int N,flag=0; cin>>N; int **arr=new int*[N]; for(int i=0;i<N;++i){ arr[i]=new int[N]; for(int j=0;j<N;++j) cin>>(arr[i])[j]; } for(int i=0;i<N;++i){ for(int j=0;j<i;++j){ if((arr[i])[j]!=(arr[j])[i]){ ++flag; break; } } } if(flag==0) cout<<"Yes!"<<endl; else cout<<"No!"<<endl; for(int i=0;i<N;++i) delete [] arr[i]; delete [] arr; return 0; }
int#include <stdio.h> #include <stdlib.h> #define N 100 int judge(int a[][N],int n); int main() { int a[N][N]; int n; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { scanf("%d",&a[i][j]); } } if(judge(a,n)==1) { printf("Yes!\n"); } else { printf("No!\n"); } } return 0; } int judge(int a[][N],int n) { int k=0; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(i!=j) { if(a[i][j]==a[j][i]) { k++; } } } } if(k==n*n-n)return 1; else return 0; }
#include<iostream> using namespace std; int main(){ int n; while(cin>>n){ int **a=new int*[n]; for(int i=0;i<n;i++) a[i]=new int[n]; for(int i=0;i<n;i++) for(int j=0;j<n;j++) cin>>a[i][j]; bool judge=1; for(int i=0;i<n&&judge;i++) for(int j=i;j<n;j++) if(a[i][j]!=a[j][i]){ cout<<"No!"<<endl; judge=0; break; } if(judge) cout<<"Yes!"<<endl; } }
#include<bits/stdc++.h>
int a[101][101];
int main(){
int n;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
scanf("%d",&a[i][j]);
int k=0;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
if(a[i][j]!=a[j][i]){
printf("No!\n");
k=1;break;
}
if(k==1)break;
}
if(k==0)printf("Yes!\n");
}
}
主要就是设置一个flag #include <iostream> #include <cstdio> int num[101][101]; using namespace std; int main(){ int n; while(cin>>n){ for(int i = 0;i < n;i++) for(int j = 0;j < n;j++) cin>>num[i][j]; bool flag = true; for(int i = 0;i < n;i++){ for(int j = i+1;j < n;j++){ if(num[i][j]!=num[j][i]){ flag = false; break; } } } if(flag) cout<<"Yes!"<<endl; else cout<<"No!"<<endl; } return 0; }
#include<stdio.h> const int maxn=110; int A[maxn][maxn]; int main() { int N; while(scanf("%d",&N)!=EOF){ for(int i=0;i<N;i++){ for(int j=0;j<N;j++){ scanf("%d",&A[i][j]); } }int flag=1; for(int i=0;i<N;i++){ for(int j=i+1;j<N;j++){ if(A[i][j]!=A[j][i]){ flag=0;break; } if(flag==0) break; } } if(flag==1) printf("Yes!\n"); else printf("No!\n"); } return 0; }
#include <iostream> using namespace std; int main(){ int matrix[101][101],n; while(cin>>n){ int i,j; bool flag=true; for(i=0;i<n;i++) for(j=0;j<n;j++) cin>>matrix[i][j]; for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(matrix[i][j]!=matrix[j][i]){ flag=false; break; } } } if(flag) cout<<"Yes!"<<endl; else cout<<"No!"<<endl; } return 0; }
#include<stdio.h> #define BUFFERSIZE 100 int main(void) { int array[BUFFERSIZE][BUFFERSIZE] = {0}; int len = 0; while (fscanf(stdin, "%d", &len) != EOF) { for (int row = 0; row < len; row++) { for (int column = 0; column < len; column++) fscanf(stdin, "%d", &array[row][column]); } bool flag = 1; for (int row = 0; row < len; row++) { for (int column = 0; column < len; column++) { if (array[row][column] != array[column][row]) { flag = 0; break; } } } if (flag == 0) fprintf(stdout, "No!\n"); else fprintf(stdout, "Yes!\n"); } return 0; }
#include <iostream> using namespace std; int main() { int N; while (cin >> N) { int arr[N][N], flag = 0; //flag为对称标记,默认为0对称 for (int i = 0; i < N; i++) for (int j = 0; j < N; j++) { cin >> arr[i][j]; if ((i >0 && j < i) && arr[i][j] != arr[j][i]) flag = 1; //若所输入的元素已有输入的对称元素,即检查是否一致 } if (flag) cout << "No!" << endl; else cout << "Yes!" << endl; } }
try: while 1: m = [] for _ in range(input()): m.append(tuple(raw_input().split())) print 'Yes!' if m == zip(*m) else 'No!' except: pass
package com.speical.first;
import java.util.Scanner;
/**
* 判断对称矩阵
*
* 注意我的循环的边界条件,对角线是不用参与比较,所以去掉
* @author Special
* @time 2018/02/10 17:28:02
*/
public class Pro217 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
while(input.hasNext()) {
int n = input.nextInt();
int[][] nums = new int[n][n];
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
nums[i][j] = input.nextInt();
}
}
boolean flag = true;
for(int i = 1; i < n; i++) {
for(int j = 0; j < n - 1; j++) {
if(nums[i][j] != nums[j][i]) {
flag = false;
break;
}
}
}
System.out.println(flag ? "Yes!" : "No!");
}
}
}
#include <array> #include <iostream> using namespace std; array<array<int, 100>, 100>matrix; int main() { int n; while (cin >> n) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> matrix[i][j]; } } bool flag = true; //判断对称 for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (matrix[i][j] != matrix[j][i]) { flag = false; } } if (!flag) { break; } } cout << (flag ? "Yes!" : "No!") << endl; } return 0; }
#include <stdio.h> int main() { int n; while(scanf("%d",&n)!=EOF){ int a[n][n]; int tag=1; int temp; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ scanf("%d",&a[i][j]); } } for(int i=0;i<n;i++){ for(int j=i;j<n;j++){ if(a[i][j]!=a[j][i]){ tag=0;break; } }if(tag==0)break; } if(tag==1)printf("Yes!\n"); else{printf("No!\n");} } return 0; }
#include <iostream> using namespace std; int main() { int n; while (cin >> n) { int arr[100][100]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> arr[i][j]; } } bool flag = true; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (arr[i][j] != arr[j][i]) { flag = false; break; } } if (!flag) { break; } } if (flag) { cout << "Yes!" << endl; } else { cout << "No!" << endl; } } } // 64 位输出请用 printf("%lld")