2 条题解

  • 2
    @ 2023-7-25 11:05:35

    每人发题解?我来发一个吧

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    using namespace std;
    #define N 105
    int a[N][N],b[N][N];
    int main()
    {
    	int m,n,x=0;
    	cin>>m>>n;
    	for(int i=0;i<m;i++)
    		for(int j=0;j<n;j++)
    			cin>>a[i][j];
    	
    	for(int i=0;i<m;i++)
    		for(int j=0;j<n;j++)
    		{
    			cin>>b[i][j];
    			if(a[i][j]==b[i][j])
    				x++;
    		}
    	printf("%.2f",x/(double)(m*n)*100);
    	return 0;
     }
    

    已AC,放心食用!先赞后看,养成好习惯!

    • 0
      @ 2023-9-9 12:29:29

      首先定义两个变量n, m用来存储长和宽,在定义两个数组pic1, pic2用来存储图片,依次输入n和m, 再根据n和m的值输入图片。 定义一个返回类型为bool的函数same(bool a, bool b)用来检测图片中相同位置的两个值是否相等,如果相等,就将similarity(中文意思是相似度)加上100.0 / (n * m)(即每个点对应的图片相似度),最后用iomanip库中的fixed和setprecision输出结果。 代码如下:

      #include <iostream>
      #include <iomanip>
      using namespace std;
      bool same(bool a, bool b)
      {
          return (a && b) || !(a || b);
      }
      int main()
      {
          int n, m, pic1[105][105], pic2[105][105];
          double similarity = 0;
          cin >> n >> m;
          for (int i = 1; i <= n; i++)
          {
              for (int j = 1; j <= m; j++)
              {
                  cin >> pic1[i][j];
              }
          }
          for (int i = 1; i <= n; i++)
          {
              for (int j = 1; j <= m; j++)
              {
                  cin >> pic2[i][j];
              }
          }
          for (int i = 1; i <= n; i++)
          {
              for (int j = 1; j <= m; j++)
              {
                  if (same(pic1[i][j], pic2[i][j]))
                  {
                      similarity += 100.0 / double(n * m);
                  }
              }
          }
          cout << fixed << setprecision(2) << similarity;
          return 0;
      }
      
      • 1

      信息

      ID
      404
      时间
      1000ms
      内存
      16MiB
      难度
      3
      标签
      递交数
      62
      已通过
      32
      上传者