//详细思路希望能帮助你 #include <stdio.h> int main() { int n,m; scanf("%d %d",&n,&m); int arr1[n][m]; int arr2[n][m];//创建两个二维数组分别为arr1和arr2 for(int i=0;i<n;i++)//对arr1输出 { for(int j=0;j<m;j++) { scanf("%d",&arr1[i][j]); } } for(int i=0;i<n;i++)//对arr2输出 { for(int j=0;j<m;j++) { scanf("%d",&arr2[i][j]); } } int count=0;//创建count变量记录相同位置下相同数的个数 for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(arr1[i][j]==arr2[i][j])//判断相同 { count++;//相同则count++ } } } double similarity=(double)count/(n*m)*100;//定义相似度,count为int类型,转为double,*100是进行百分比 printf("%0.2f",similarity);//保留小数后两位 return 0; }