40 条题解

  • 0
    @ 2023-8-3 15:02:07

    新手驾到🎉️ 思路:遍历数组找最大、最小值

    我的做法:先输出最小值,从第二个值循环输出a[i],在最小、最大值处,输出a[0]或a[n-1],最后输出最大值。

    /#include<iostream>
    using namespace std;
    int main()
    {
        int n , a[100] , max = 0, min = 100000000;
        cin >> n;
        for (int i = 0; i < n;i++)
        {
            cin >> a[i];
            if (a[i] > max)//最大值
            {
                max = a[i];
            }
            if (a[i] < min)//最小值
            {
                min = a[i];
            }
        }
        cout << min << " ";//首先输出最小值(别忘记空格)
        for (int i = 1;i < n - 1; i++)//从第二个值开始,到第n-1个值
        {
            if (a[i] == min)
            {
                cout << a[0] << " ";
                continue;//因为输出之后就不需要输出a[i]了,所以使用continue语句
            }
            if (a[i] == max)
            {
                cout << a[n-1] << " ";
                continue;//这里也一样
            }
            cout << a[i] << " ";   
        }
        cout << max;最大值
        return 0;
    }
    

    食用前点个赞吧

    • 0
      @ 2023-7-7 13:27:03
      #include <iostream>
      using namespace std;
      int main()
      {
          int n,a,b;
          long long c[100];
          cin >> n;
          for(int i = 0;i < n;i++)
          {
              cin >> c[i];
          }
          a = 0;//最大
          b = n;//最小
          for(int i = 0; i < n;i++)
          {
              if(a < c[i])
              {
                  a = c[i];
              }
              if(b > c[i])
              {
                  b = c[i];
              }
          }
          for(int i = 0;i < n;i++)
          {
              if(i == 0)
              {
                  cout << b << " ";
                  continue;
              }
              if(c[i] == a)
              {
                  cout << c[n-1] << " ";
                  continue;
              }
              if(i == n - 1)
              {
                  cout << a << " ";
                  continue;
              }
              if(c[i] == b)
              {
                  cout << c[0] << " ";
                  continue;
              }
              cout << c[i] << " ";
          }
          return 0;
      }//已AC
      
      • 0
        @ 2023-6-25 7:39:39
        #include<iostream>
        using namespace std;
        int main()
        {
            int n,a[1000],minn=100000,s,maxx=0,l;//定义变量
            cin>>n;
            for(int i=1;i<=n;i++)  
            {
                cin>>a[i];
                if(a[i]<minn)
                {
                    minn=a[i];
                    s=i;
                }
                if(a[i]>maxx)
                {
                    maxx=a[i];
                    l=i;
                }
            }
            swap(a[1],a[s]);
            swap(a[n],a[l]);
            for(int i=1;i<=n;i++)
            {
                cout<<a[i]<<" ";
            }
        }
        
        • 0
          @ 2023-6-8 21:51:22

          直接看吧,代码如下

          #include <bits/stdc++.h>
          using namespace std;
          int main()
          {
          	int n,min=10000000,max=0;//定义n和最小数min、最大数max
          	cin>>n;//输入n 
          	int a[n+1];//根据n来判断数组a的大小
          	for(int i=1;i<=n;i++)//输入+寻找min、max
          	{
          		cin>>a[i];//输入
          		if(a[i]<min)//如果a[i]比min小,刷新min 
          		{
          			min=a[i]; 
          		} 
          		if(a[i]>max)//如果a[i]比max大,刷新max 
          		{
          			max=a[i];
          		}
          	} 
          	for(int i=1;i<=n;i++)
          	{
          		if(a[i]==min)//找到跟min相等的a[i]的值 
          		{
          			a[1]^=a[i];
          			a[i]^=a[1];
          			a[1]^=a[i];//利用异或运算符完成改变 
          			break;
          		}
          	}
          	for(int i=1;i<=n;i++)
          	{
          		if(a[i]==max)//找到跟max相等的a[i]的值
          		{
          			a[n]^=a[i];
          			a[i]^=a[n];
          			a[n]^=a[i];//利用异或运算符完成改变 
          			break;
          		}
          	}
          	for(int i=1;i<=n;i++)//输出改变后的数组
          	{
          		cout<<a[i]<<" ";
          	} 
          	return 0;
          }
          

          这里用到了异或运算符,简单来讲,就是把参与运算的两个数据转成二进制,然后再看每一位,只要数字不同,结果就为1,否则为0

          • 0
            @ 2023-5-14 12:46:22

            有注释自己看

            #include <bits/stdc++.h>//如果想用swap啥的建议还是用万能函数,除非你愿意多写个导入
            using namespace std;
            int main()
            {
            int minn=1,maxx=1,n,a[105];//这里maxx不要设为0,除非数组a是全局变量(别问我怎么知道的,问就是经验)
            cin >> n;
            for (int i=1;i<=n;i++)
            {
            cin >> a[i];//这里注意不要把i给写成n了,比如我就经常犯这种低级错误【大悲】
            if (a[minn]>a[i])
            {
            minn=i;
            }
            if (a[maxx]<a[i])
            {
            maxx=i;
            }
            //这里输入的时候就可以顺便把最小值和最大值给比出来就懒得多写个for了
            }
            int c;
            c=a[minn];
            a[minn]=a[1];
            a[1]=c;
            c=a[maxx];
            a[maxx]=a[n];
            a[n]=c;
            for (int i=1;i<=n;i++)
            {
            cout << a[i] << " ";
            }
            //当然学过了L6的可以直接用min,max和swap,这里就不多赘述了
            return 0;
            }
            
            • 0
              @ 2023-3-28 22:10:36
              #include<bits/stdc++.h>
              using namespace std;
              int n,a[107],maxx=0,minn=10000007,xx,yy;
              int main()
              {
                  cin>>n;
                  for (int i=1;i<=n;i++)
                  {
                      cin>>a[i];
                      if (a[i]<minn)
                      {
                          minn=a[i];
                          xx=i;
                      }
                      if (a[i]>maxx)
                      {
                          maxx=a[i];
                          yy=i;
                      }
                  }
                  int xxx=a[1],yyy=a[n];
                  a[1]=minn,a[xx]=xxx,a[yy]=yyy,a[n]=maxx;
                  for (int i=1;i<=n;i++)
                      cout<<a[i]<<" ";
                  return 0;
              }
              
              • 0
                @ 2023-1-7 20:36:18

                废话不多说,直接上代码。

                #include <bits/stdc++.h> 
                using namespace std;
                int sum2 , num1 , num2;
                int main()
                {
                    int n , a[110] , sum1 = 999999;
                    cin >> n;
                    for (int i = 1;i <= n;i++)
                    {
                        cin >> a[i];
                    }
                    for (int i = 1;i <= n;i++)
                    {
                        if (a[i] < sum1)
                        {
                            sum1 = a[i];
                            num1 = i;
                        }
                        else if (a[i] > sum2)
                        {
                            sum2 = a[i];
                            num2 = i;
                        }
                    }
                    a[num2] = a[n];
                    a[n] = sum2;
                    a[num1] = a[1];
                    a[1] = sum1;
                    for (int i = 1;i <= n;i++)
                    {
                        cout << a[i] << " ";
                    }
                    return 0;
                }
                

                制作不易,求个赞。

                • 0
                  @ 2022-12-8 11:22:38

                  其实这题非常简单 首先,定义两个用来比较的变量,一个尽量大一个尽量小(比如maxn,minn),方便后面比较。(注意:不要使用max和min,因为这是系统自带的函数,逻辑可能会出错)

                  然后,输入数组,逐个判断数组里的每一项是否比minn小,用一个变量(如:s)存储它的位置,用swap函数(一个系统自带的可以交换两个数的数值的函数)把第一项和第s项交换即可

                  最后,判断最大和判断最小恰恰相反用相反的方法完成,然后输出就ok啦!

                  #include<bits/stdc++.h>
                  using namespace std;
                  int main(){
                  	int n,a[100005],minn=999999999,maxn=-999,s,x;
                  	cin>>n;
                  	for(int i=1;i<=n;i++)cin>>a[i];
                  	for(int j=1;j<=n;j++){
                  		if(a[j]<minn){
                  			minn=a[j];
                  			s=j;
                  		}
                  	}
                  	swap(a[1],a[s]);
                  	for(int q=1;q<=n;q++){
                  		if(a[q]>maxn){
                  			maxn=a[q];
                  			x=q;
                  		}
                  	}
                  	swap(a[n],a[x]);
                  	for(int z=1;z<=n;z++)cout<<a[z]<<" ";
                  	return 0;
                  }
                  

                  完结撒花🎉️ 点个赞吧❤️

                  • 0
                    @ 2022-9-20 19:59:23

                    核心代码

                    for(int i=0;i<n;i++)
                    {
                        if(a[i]>maxx)
                        {maxx=a[i];}//找出最大值
                        else if(a[i]<minn)
                        {minn=a[i];}//找出最小值
                    }
                    for(int i=0;i<n;i++)
                    {
                        if(a[i]==minn)
                        {a[i]=a[0];
                         a[0]=minn;}//交换最小值位置
                         else if(a[i]==maxx)
                         {a[i]=a[n-1];
                         a[n-1]=maxx;}//交换最大值位置
                    }
                    for(int i=0;i<n;i++)
                    {
                        cout<<a[i]<<" ";//输出
                    }
                    

                    完整代码

                    #include<bits/stdc++.h>
                    using namespace std;
                    int main(){
                        int n,a[100],maxx=0,minn=99999;
                        cin>>n;
                        for(int i=0;i<n;i++)
                        {cin>>a[i];}
                        for(int i=0;i<n;i++)
                        {
                            if(a[i]>maxx)
                            {maxx=a[i];}
                            else if(a[i]<minn)
                            {minn=a[i];}
                        }
                        for(int i=0;i<n;i++)
                        {
                            if(a[i]==minn)
                            {a[i]=a[0];
                             a[0]=minn;}
                             else if(a[i]==maxx)
                             {a[i]=a[n-1];
                             a[n-1]=maxx;}
                        }
                        for(int i=0;i<n;i++)
                        {
                            cout<<a[i]<<" ";
                        }
                    
                    
                        return 0;
                    }
                    
                    ps:这里其实有个bug,如果数组里的数都大于minn事先设好的值,就会error
                    • 0
                      @ 2022-8-30 14:42:38
                      #include <iostream>
                      using namespace std;
                      int main()
                      {
                      int a[100], n, s2, b2, s = 109299, b = 0, l;//数组a 个数n 最大b 最小s 临时l 最大编号b2 最小编号s2
                      cin >> n;
                      for (int i = 0;i < n;i++)
                      {
                      cin >> a[i];
                      }
                      //输入完成(so easy!)
                      for (int i = 0;i < n;i++)
                      {
                      if (s > a[i])
                      {
                      s = a[i];
                      s2 = i;
                      }
                      
                      if (b < a[i])
                          {
                              b = a[i];
                              b2 = i;
                          }
                      }//找最大最小值
                      l = a[0];
                      a[0] = a[s2];
                      a[s2] = l;
                      l = a[n -1];
                      a[n - 1] = a[b2];
                      a[b2] = l;
                      //替换
                      for (int i = 0;i < n;i++)
                      {
                          cout << a[i] << " ";
                      }//输出
                      return 0;
                      

                      }

                      
                      
                      • 0
                        @ 2022-8-27 11:05:03
                        #include<bits/stdc++.h>
                        using namespace std;
                        int main(){
                        	int n,a[101],max=0,min=10000,i;
                        	cin>>n;
                        	for(i=1;i<=n;i++){
                        		cin>>a[i];
                        		if(a[i]>max)max=a[i];
                        		if(a[i]<min)min=a[i];
                        	}
                        	cout<<min<<" ";
                        	for(i=2;i<n;i++){
                        		if(a[i]==max)cout<<a[n]<<" ";
                        		else if(a[i]==min)cout<<a[1]<<" ";
                        		else cout<<a[i]<<" ";
                        	}
                        	cout<<max; 
                        	return 0;
                        }
                        
                        • -1
                          @ 2024-2-22 18:40:41

                          `

                          #include <bits/stdc++.h>
                          using namespace std;
                          int main()
                          {
                              int n,a[100],max=0,min=10000000000000,d,x;
                              cin>>n;
                              for(int i=0;i<n;i++)
                              {
                                  cin>>a[i];
                              }
                              for(int i=0;i<n;i++)
                              {
                                  if(a[i]>max)
                                  {
                                      max=a[i];
                                      d=i;
                                  }
                                  if(a[i]<min)
                                  {
                                      min=a[i];
                                      x=i;
                                  }
                              }
                              a[x]=a[0];
                              a[0]=min;
                              a[d]=a[n-1];
                              a[n-1]=max;
                              for(int i=0;i<n;i++)
                              {
                                  cout<<a[i]<<" ";
                              }
                              return 0;
                          }
                          
                          • -1
                            @ 2024-2-4 12:22:26
                            #include <iostream>
                            using namespace std;
                            int main()
                            {
                                int n, a[100], minn = 101, maxx = -1, z, b, y;
                                cin >> n;
                                for (int i = 0; i < n; i++)
                                {
                                    cin >> a[i];
                                }
                                for (int i = 0; i < n; i++)
                                {
                                    if (a[i] < minn)
                                    {
                                        minn = a[i];
                                        z = i;
                                    }
                                }
                                for (int i = 0; i < n; i++)
                                {
                                    if (a[i] > maxx)
                                    {
                                        maxx = a[i];
                                        b = i;
                                    }
                                }
                                y = a[0];
                                a[0] = minn;
                                a[z] = y;
                                y = a[n - 1];
                                a[n - 1] = maxx;
                                a[b] = y;
                                for (int i = 0; i < n; i++)
                                {
                                    cout << a[i] << " ";
                                }
                                return 0;
                            }
                            
                            • -1
                              @ 2023-8-21 10:17:17

                              #include<bits/stdc++.h> using namespace std; int main() { int n,a[101],max=0,min=10000,i; cin>>n; for(i=1;i<=n;i++) { cin>>a[i]; if(a[i]>max) { max=a[i];取最大值 } if(a[i]<min) { min=a[i];//取最小值 } } cout<<min<<" "; for(i=2;i<n;i++) { if(a[i]==max) { cout<<a[n]<<" "; } else if(a[i]==min) { cout<<a[1]<<" "; } else { cout<<a[i]<<" "; } } cout<<max;//按格式输出即可 return 0; }

                              • -1
                                @ 2023-8-20 20:22:51

                                P212 移动数组元素

                                其实这道题我编了好久才AC的…… 题目传送门:P212 【入门】移动数组元素


                                这里需要用到一个函数swap 用作交换,这里用来交换数组元素,第一个和最小值,最大值和最后一个。


                                AC代码:

                                #include <bits/stdc++.h>//定义万能头文件
                                using namespace std;//创建命名空间
                                int main ()//定义主函数
                                {
                                    int a[105], n, maxn = -114514, minn = 114514, b, c;//定义数组(数组开大一些以防数组越界,定义数组的长度n,最大值和最小值(114514是可以改变的),然后用来存储最大值和最小值位置的变量b和c
                                    cin >> n;//输入数组的大小
                                    for (int i = 1; i <= n; i++)//循环输入数组
                                    {
                                        cin >> a[i];//输入数组元素
                                        if (a[i] > maxn)//如果这个元素比最大值还要大
                                        {
                                            maxn = a[i];//那么最大值就是这个元素
                                            b = i;//记录下这个元素的位置
                                        }
                                        if (a[i] < minn)//如果这个元素比最小值还要小
                                        {
                                            minn = a[i];//那么最小值就是这个元素
                                            c = i;//记录下这个元素的位置
                                        }
                                    }
                                    swap (a[1], a[c]);//交换最小值和第一个元素
                                    swap (a[n], a[b]);//交换最大值和最后一个元素
                                    for (int i = 1; i <= n; i++)//循环输出数组
                                    {
                                        cout << a[i] << " ";//记得要输出空格
                                    }
                                    return 0;//保持return 0的好习惯
                                }
                                

                                ~~完结撒花=)🎉️ 🎉️ 🎉️ ~~

                                • -1
                                  @ 2023-8-11 13:03:53
                                  #include<iostream>
                                  using namespace std;
                                  int main()
                                  {
                                      int n, x, y, a[100], maxx = 0, minn;
                                      cin >> n;
                                      for (int i = 0;i < n;i++)
                                      {
                                          cin >> a[i];
                                      }
                                      minn = a[0];
                                      x = a[0];
                                      y = a[n - 1];
                                      for (int i = 0;i < n;i++)
                                      {
                                          if (a[i] > maxx)
                                          {
                                              maxx = a[i];
                                          }
                                          if (a[i] < minn)
                                          {
                                              minn = a[i];
                                          }
                                      }
                                      for (int i = 0;i < n;i++)
                                      {
                                          if (a[i] == maxx)
                                          {
                                              a[i] = y;
                                          }
                                          if (a[i] == minn)
                                          {
                                              a[i] = x;
                                          }
                                      }
                                      a[0] = minn;
                                      a[n - 1] = maxx;
                                      for (int i = 0;i < n;i++)
                                      {
                                          cout << a[i] << " ";
                                      }
                                      return 0;
                                  }
                                  
                                  • -1
                                    @ 2023-8-11 10:39:34
                                    #include <bits/stdc++.h>
                                    using namespace std;
                                    int main()
                                    {
                                        int a[100], n, ma = -10000, mi = 10000;
                                        cin >> n;
                                        for (int i = 0; i < n; i++)
                                        {
                                            cin >> a[i];
                                            if (a[i] > ma)
                                            {
                                                ma = a[i];
                                            }
                                            if (a[i] < mi)
                                            {
                                                mi = a[i];
                                            }
                                        }
                                        cout << mi << " ";
                                        for (int i = 1; i < n - 1; i++)
                                        {
                                            if (a[i] == ma)
                                            {
                                                cout << a[n - 1] << " ";
                                                continue;
                                            }
                                            if (a[i] == mi)
                                            {
                                                cout << a[0] << " ";
                                                continue;
                                            }
                                            cout << a[i] << " ";
                                        }
                                        cout << ma << " ";
                                        return 0;
                                    }
                                    
                                    • -1
                                      @ 2023-8-9 15:51:50

                                      1.求出数组的最大值和最小值 2.将原数组的第一位和最后一位数据存储起来 3.遍历元组 代码长,但是复制粘贴简单,检测过的代码也是准确无误,不劳于再次修改

                                      #include <bits/stdc++.h>
                                      using namespace std;
                                      int main()
                                      {
                                          int a[100],n;
                                          cin >>n;
                                          for(int i=0;i<n;i++) cin >>a[i];
                                          int maxx=0,minn=a[0];
                                          for(int i=0;i<n;i++)
                                          {
                                              if(maxx<=a[i])
                                              {
                                                  maxx=a[i];
                                              }
                                              if(minn>=a[i])
                                              {
                                                  minn=a[i];
                                              }
                                          }
                                          int first =a[0];
                                          int last =a[n-1];
                                          for(int i=0;i<n;i++)
                                          {
                                              if(i==0)
                                              {
                                                  cout <<minn<<" ";
                                              }
                                              else if(i==n-1)
                                              {
                                                  cout <<maxx<<" ";
                                              }
                                              else if(a[i]==minn)
                                              {
                                                  cout <<first<<" ";
                                              }
                                              else if(a[i]==maxx)
                                              {
                                                  cout <<last<<" ";
                                              }
                                              else
                                              {
                                                  cout <<a[i]<<" ";
                                              }
                                          }
                                          return 0;
                                      }
                                      
                                      • -1
                                        @ 2022-8-24 21:08:11

                                        这里可以用亿点系统函数。

                                        #include <bits/stdc++.h>
                                        using namespace std;
                                        int n,maxn,minn,a[105];
                                        int main()
                                        {
                                        	cin >> n;
                                        	for(int i=0;i<n;i++) cin >> a[i];
                                        	maxn=*max_element(a,a+n);//找出最大值。
                                        	minn=*min_element(a,a+n);//找出最小值。
                                        	for(int i=0;i<n;i++)
                                        	{
                                        		if(a[i]==maxn) swap(a[i],a[n-1]);//交换。
                                        		if(a[i]==minn) swap(a[i],a[0]);//交换。
                                        	}
                                        	for(int i=0;i<n;i++) cout << a[i] << " ";
                                        	return 0;
                                        }
                                        
                                        • -11
                                          @ 2022-5-15 10:03:25

                                          #include <bits/stdc++.h> using namespace std; int a[200]; int main() { int n,minn=10000,maxx=0; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } for(int i=1;i<=n;i++) { if(a[i]>maxx) { maxx=a[i]; } if(a[i]<minn) { minn=a[i]; } } for(int i=1;i<=n;i++) { if(a[i]==minn) { int t=a[i]; a[i]=a[1]; a[1]=t; } if(a[i]==maxx) { int t=a[i]; a[i]=a[n]; a[n]=t; } } for(int i=1;i<=n;i++) { cout<<a[i]<<" "; } return 0; }

                                          信息

                                          ID
                                          212
                                          时间
                                          1000ms
                                          内存
                                          16MiB
                                          难度
                                          5
                                          标签
                                          递交数
                                          6734
                                          已通过
                                          2385
                                          上传者