警示——数组大小
查看原帖
警示——数组大小
1161910
peng_fuxin楼主2024/5/25 19:07

关于这题

由于我忘记将数组扩容而多花了十几分钟,我认为这是很不值得的
#include <iostream>
using namespace std;
int num, num_1, num_2;
int arr[101];
int brr[101];
int main()
{
   cin >> num >> num_1;
   for (int i = 0; i < num; i++)
   {
       cin >> arr[i] >> brr[i];
   }
   for (int i = 0; i < num - 1; i++)
   {
       for (int j = i + 1; j < num; j++)
       {
           if (brr[i] < brr[j])
           {
               int tmp = brr[i];
               brr[i] = brr[j];
               brr[j] = tmp;
               tmp = arr[i];
               arr[i] = arr[j];
               arr[j] = tmp;
           }
       }
   }
   for (int i = 0; i < num - 1; i++)
   {
       for (int j = i + 1; j < num; j++)
       {
           if (brr[i] == brr[j] && arr[i] > arr[j])
           {
               int tmp = brr[i];
               brr[i] = brr[j];
               brr[j] = tmp;
               tmp = arr[i];
               arr[i] = arr[j];
               arr[j] = tmp;
           }
       }
   }
   cout << endl;
   cout << endl;
   cout << endl;
   //  for(int i=0;i<num;i++){
   //      cout<<arr[i]<<" "<<brr[i];
   //      if(i!=num-1) cout<<endl;
   //  }
   num_2 = num_1 * 1.5;
   int crr[101];
   int count = 0;
   for (int i = 0; i < num_2; i++)
   {
       crr[i] = brr[i];
   }
   int drr[101];
   int count_1 = 0;

   for (int i = 0; i < num_2; i++)
   {
       int flag = 0;
       for (int j = 0; j < num_2; j++)
       {
           if (crr[i] == drr[j])
           {
               flag = 1;
           }
       }
       if (flag == 0)
       {
           drr[count_1] = crr[i];
           count_1++;
       }
   }

   cout << drr[count_1 - 1] << " ";

   for (int i = 0; i < num; i++)
   {
       for (int j = 0; j < count_1; j++)
       {
           if (brr[i] == drr[j])
           {
               count++;
           }
       }
   }

   cout << count << endl;

   for (int i = 0; i < count; i++)
   {
       for (int j = 0; j < count_1; j++)
       {
           if (brr[i] == drr[j])
           {
               cout << arr[i] << " " << brr[i] << endl;
           }
       }
   }

   return 0;
}

以上为40分代码,增大数组存储即可AC

2024/5/25 19:07
加载中...