8 条题解

  • 3
    @ 2023-9-24 15:43:25
    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int a[5];
        cin >> a[1] >> a[2] >> a[3] >> a[4];
        sort (a + 1, a + 5);
        if (a[1] % 2 == 1 && a[1] + 2 == a[2] && a[2] + 2 == a[3] && a[3] + 2 == a[4])
            cout << a[1] << "+2=" << a[2] << endl << a[2] << "+2=" << a[3] << endl << a[3] << "+2=" << a[4] << endl;
        else
            cout << a[4] << " " << a[3] << " " << a[2] << " " << a[1];
        return 0;
    }
    

    简简单单

    • 1
      @ 2023-7-28 14:11:08

      这题需要用到reverse反转函数: reverse(起始地址,结尾的下一地址); 具体内容在课内第二年L8-7

      参考代码(已AC):

      #include <bits/stdc++.h>
      using namespace std;
      int a[4];
      int main()
      {
          for(int i=1;i<=4;i++)
              cin>>a[i];
          sort(a+1,a+5);//从小到大排序
          if(a[1]+2==a[2]&&a[2]+2==a[3]&&a[3]+2==a[4])
              for(int i=1;i<=3;i++)
                  cout<<a[i]<<"+2="<<a[i+1]<<endl;
          else
          {
              reverse(a+1,a+5);//从大到小排序
              for(int i=1;i<=4;i++)
                  cout<<a[i]<<" ";
          }
          return 0;
      }
      
      • 1
        @ 2022-12-23 14:20:09
        #include <iostream>
        using namespace std;
        int main()
        {
        	int a, b, c, d, t;
        	cin >> a >> b >> c >> d;
        	if (a > b)
            {
        		t = a;
        		a = b;
        		b = t;
        	}
        	if (b > c)
            {
        		t = b;
        		b = c;
        		c = t;
        	}
        	//d最大
        	if (c > d)
            {
        		t = c;
        		c = d;
        		d = t;
        	}
        	if (a > b)
            {
        		t = a;
        		a = b;
        		b = t;
        	}
        	//abc中c最大
        	if (b > c)
            {
        		t = b;
        		b = c;
        		c = t;
        	}
            //ab中b最大
        	if (a > b)
            {
        		t = a;
        		a = b;
        		b = t;
        	}
        	//相邻的2个数差值为2,且其中有一个数是奇数
        	if (a + 2 == b && b + 2 == c && c + 2 == d && a % 2 != 0)
            {
        		cout << a << "+2=" << b << endl;
        		cout << b << "+2=" << c << endl;
        		cout << c << "+2=" << d << endl;
        	}
            else
            {
        		cout << d << " " << c << " " << b << " " << a << endl;
        	}
            return 0;
        }
        
        • 0
          @ 2024-1-26 18:01:32

          这一题大家怎么都在用sort函数呀,我才刚学到Level3,还没学到函数呢,不过我起码知道全局变量~ 好啦,不多讲,先来理一理思路:这题其实根本可以不用sort函数,直接数组排序就行,通过两个数组a和m将数组里的元素按从大到小排序,最后得到的结果在数组m中,直接根据情况输出就行~

          没学到sort函数的,来看看数组排序思路:

          Step 1:定义一个for循环嵌套语句,我们一会儿要用到其中的两个循环变量i和j;

          Step 2:用判断最大值的方法,依次找出数组m的“最大值”(最大值、第二大值、第三大值和第四大值):如果a数组中的第j个元素是“最大值”(a数组中的第j个元素大于m数组中第i大的元素(由于是全局数组,暂时是0)),就将a数组中的第j个元素(包括0)保存到m数组中的第i个元素中,并将数组最大值的下标保存到变量p中;

          Step 3:将a数组中的第p个元素设为0,这样子就能保证本次找出的最大值在数组a中会变为最小,而下一个所找出的最大值就不会重复,会是第二大的或第三大的或第四大的(根据情况而定);

          Step 4:完成!

          已AC,请放心食用

          #include <iostream>
          using namespace std;
          int a[4], m[4], p;
          int main()
          {
              for (int i = 0; i < 4; i++)
              {
                  cin >> a[i];
              }
              for (int i = 0; i < 4; i++)
              {
                  for (int j = 0; j < 4; j++)
                  {
                      if (a[j] > m[i])
                      {
                          m[i] = a[j];
                          p = j;
                      }
                  }
                  a[p] = 0;
              }
              if (m[0] - 2 == m[1] && m[1] - 2 == m[2] && m[2] - 2 == m[3])
              {
                  cout << m[3] << "+2=" << m[2] << endl;
                  cout << m[2] << "+2=" << m[1] << endl;
                  cout << m[1] << "+2=" << m[0];
              }
              else
              {
                  for (int i = 0; i < 4; i++)
                  {
                      cout << m[i] << " ";
                  }
              }
              return 0; 
          }
          

          养成好习惯,看后点个赞( •̀ ω •́ )✧!


          大家连成心,赞赞变成金b( ̄▽ ̄)d!


          👍👍👍👍👍

          • 0
            @ 2023-7-7 12:52:27
            #include <iostream>
            #include <algorithm>
            using namespace std;
            bool cmp(int a, int b)
            {
            	return a > b;
            }
            int main()
            {
            	int a[4];
            	for (int i = 0; i < 4; i++)
            	{
            		cin >> a[i];
            	}
            	sort(a, a + 4);//升序排列
            	if (a[0] + 2 == a[1] && a[1] + 2 == a[2] && a[2] + 2 == a[3])
            	{
            		cout << a[0] << "+2=" << a[1] << endl;
            		cout << a[1] << "+2=" << a[2] << endl;
            		cout << a[2] << "+2=" << a[3];
            	}
            	else
            	{
            		sort(a, a + 4, cmp);//降序排列
            		for (int i = 0; i < 4; i++)
            		{
            			cout << a[i] << " ";
            		}
            	}
            	return 0;
            }
            
            • 0
              @ 2023-4-22 13:46:32
              #include <iostream>
              #include <algorithm>
              using namespace std;
              int main()
              {
                  int a[4];
                  for (int i = 0; i < 4; i++)
                  {
                      cin >> a[i];
                  }
                  sort(a, a + 4);
                  bool flag = true;
                  for (int i = 0; i < 3; i++)
                  {
                      if (a[i] % 2 == 0 || a[i] + 2 != a[i + 1])
                      {
                          flag = false;
                      }
                  }
                  if (flag)
                  {
                      for (int i = 0; i < 3; i++)
                      {
              
                          cout << a[i] << "+2=" << a[i + 1] << endl;
                      }
                  }
                  else
                  {
                      for (int i = 3; i >= 0; i--)
                      {
                          cout << a[i] << " ";
                      }
                  }
                  return 0;
              }
              
              • 0
                @ 2022-8-16 18:59:05

                这代码打了1个小时,用了最基础的知识,打的真累,终于对了,这是我的思路。 先判断哪个最大放在便量e中,第2大放在便量f中 第3大放在便量g中,最小在h中。再判断是不是连续奇数,是,输出h+2=g g+2=f f+2=e,不是,输出e到h,思路简单编起来却难。

                #include <iostream> using namespace std; int main() { int a,b,c,d,e,f,g,h;//定义6个变量 cin >> a >> b >> c >> d; if(a > b && a > c && a > d)//判断谁最大 { e=a; if(b > c && b > d)//第2大 { f=b; if(c>d)//第3大 { g=c; h=b; } if(d>c)//第3大 { g=d; h=c; } } if(c > b && c > d) { f=c; if(b>d) { g=b; h=d; } if(d>b) { g=d; h=b; } } if(d > c && d > b) { f=d; if(c>b) { g=c; h=b; } if(b>c) { g=b; h=c; } } } if(b > a && b > c && b > d) { e=b; if(a > c && a > d) { a=f; if(c>d) { g=c; h=d; } if(d>c) { g=d; h=c; } } if(c > a && c > d) { f=c; if(a>d) { g=a; h=d; } if(d>a) { g=d; h=a; } } if(d > c && d > a) { f=d; if(a>c) { g=a; h=c; } if(c>a) { g=c; h=a; } } } if(c > b && c > a && a > d) { e=c; if(a > b && a > d) { a=f; if(d>b) { g=d; h=b; } if(b>d) { g=b; h=d; } } if(b > a && b > d) { f=b; if(d>a) { g=d; h=a; } if(a>d) { g=a; h=d; } } if(d > a && d > b) { f=d; if(b>a) { g=b; h=a; } if(a>b) { g=a; h=b; } } } if(d > b && d > c && d > a) { e=d; if(a > c && a > b) { f=a; if(c>b) { g=c; h=b; } if(b>c) { g=b; h=c; } } if(b > c && b > a) { f=b; if(c>a) { g=c; h=a; } if(a>c) { g=a; h=c; } } if(c > b && c > a) { f=c; if(b>a) { g=b; h=a; } if(a>b) { g=a; h=b; } } } if(a%21 && b%21 && c%21 && d%21)//判断是不是奇数 { if(e-2f && e-4g && e-6==h)//判断相龄 { cout << h << "+2=" << g << endl; cout << g << "+2=" << f << endl; cout << f << "+2=" << e << endl; } else { cout << e << " " << f << " " << g << " " << h << " "; } } else { cout << e << " " << f << " " << g << " " << h << " "; } return 0; }

                • -1
                  @ 2023-8-29 21:38:49

                  不得不说,这题太恶心了!!!😕😕😕(我搞了好久)

                  🚀️ 🚀️ 🚀️ 直接上代码!(已AC)

                  #include<bits/stdc++.h>
                  using namespace std;
                  int main()
                  {
                      int a[4]; // 创建1个长度为4的变量。
                      for (int i = 0; i < 4; i++)
                      {
                          cin >> a[i]; // 依次输入。
                      }
                      sort(a, a + 4); // 用sort()函数对数组a进行排序。
                      if (a[0] + 2 == a[1] && a[1] + 2 == a[2] && a[2] + 2 == a[3]) // 判断4个数是否是连续奇数, 依次打印出。
                      {
                          cout << a[0] << "+2=" << a[1] << endl;
                          cout << a[1] << "+2=" << a[2] << endl;
                          cout << a[2] << "+2=" << a[3] << endl;
                      }
                      else 
                      {
                          for (int i = 3; i >= 0; i--) // 否则从大到小输出数组a;
                          {
                              cout << a[i] << " ";
                          }
                      }
                  }
                  
                  • 1

                  信息

                  ID
                  41
                  时间
                  1000ms
                  内存
                  16MiB
                  难度
                  4
                  标签
                  递交数
                  236
                  已通过
                  111
                  上传者