40 条题解

  • 59
    @ 2022-8-20 19:30:51

    没难度,就是有点长,可以先用变量保存一下a[0]和a[n - 1],当然也可以反过来

    #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;
    }
    
  • 14
    @ 2022-7-27 21:00:46

    找出max和min然后按格式输出即可

    #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;
    } 
    
    • @ 2022-8-27 11:03:49

      #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; }

    • @ 2022-8-27 11:04:35
      #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;
      }
      ```@[](/user/5674)
      
  • 12
    @ 2022-12-23 16:42:33

    全网最短的AC代码来喽!

    #include <iostream>
    using namespace std;
    int main()
    {
    	int a[96],n,i,t,p,max=0,min=0;
    	cin>>n;
    	for(i=0;i<n;i++)
    		cin>>a[i];
    	for(i=1;i<n;i++)
    		if(a[i]<a[min])
    			min=i;
    	t=a[min],a[min]=a[0],a[0]=t;
    	for(i=1;i<n;i++)
    		if(a[i]>a[max])
    			max=i;
    	p=a[max],a[max]=a[n-1],a[n-1]=p;
    	for(i=0;i<n;i++)
    		cout<<a[i]<<" ";
        return 0;
    }
    
    • 11
      @ 2022-9-17 22:41:53

      这道题一如既往的简单

      首先,老规矩,定义并输入数组。

      int n; 
      cin >> n; 
      int a[n + 1];//顺眼。
      for(int i=1;i<=n;i++){
      	cin >> a[i];
      }
      

      然后,搞出zhui大的和zhui小的。

      for(int i=1;i<=n;i++){
      	if(big < a[i]){
      		big = a[i];
      		bign = i;
      	}
      	if (small > a[i]){
      		small = a[i];
      		sman = i;
      	}
      }
      

      然后der然后,交换。

      a[bign] = a[n];
      a[n] = big;
      a[sman] = a[1];
      a[1] = small;
      

      zhui后,遍历输出。

      for(int i=1;i<=n;i++){
      	cout << a[i] << ' ';
      }
      

      话不多说上代码!

      #include<bits/stdc++.h>
      using namespace std;
      int main()
      {
      	int n; 
      	cin >> n; 
      	int a[n + 1];//顺眼。
      	int big = -114514, small = 114514, bign, sman;
      	for(int i=1;i<=n;i++){
      		cin >> a[i];
      	}
      	for(int i=1;i<=n;i++){
      		if(big < a[i]){
      			big = a[i];
      			bign = i;
      		}
      		if (small > a[i]){
      			small = a[i];
      			sman = i;
      		}
      	}
      	a[bign] = a[n];
      	a[n] = big;
      	a[sman] = a[1];
      	a[1] = small;
      	for(int i=1;i<=n;i++){
      		cout << a[i] << ' ';//TODO
      	}
      	re turn 0; 
      }
      

      小盆友们,您学会了吗?

      复制? 代码不易,先点赞,再复制吧! (不要忘了删倒数第二行的空格!)

      • @ 2023-8-13 15:58:07

        你这数字好臭呀

      • @ 2023-9-2 15:57:05

        你难道不会int a[n]; for(int i = 0;i <n;i++)吗,像你这样还空出来一个a[0]

      • @ 2023-9-3 19:32:47

        恶臭的数字

    • 9
      @ 2022-8-20 23:14:26
      十分简单,上代码
      #include <iostream>
      using namespace std;
      int main()
      {   
          int n,a[100],S = 100,B = 0,num = 0,sum = 0;
          cin >> n;
          for (int i = 1;i <= n;i++)
          {
              cin >> a[i];
          }
          num = a[n];
          for (int i = 1;i <= n;i++)
          {
              if (a[i] < S)
              {
                  S = a[i];
                  sum = i;
              }
              if (a[i] > B)
              {
                  B = a[i];
                  num = i;
              }
          }
          a[sum] = a[1];
          a[1] = S;
          a[num] = a[n];
          a[n] = B;
          for (int i = 1;i<=n;i++)
          {
              cout << a[i] << " ";
          }
          return 0;
      }
      
      • @ 2023-8-26 14:51:38

        怎末是错的👎

      • @ 2023-8-26 16:24:53

        @ 你没删第一行肯定是错的啊(十分简单,上代码这一行),还有,别给人家竖倒拇指

    • 5
      @ 2023-8-22 11:44:30
      #include <iostream>
      using namespace std;
      int main()
      {
          int n,a[100],x=0,y=100,m,z;
          cin>>n;//输入
          for (int i=0;i<n;i++)
          {
              cin>>a[i];//输入
              if (a[i]>x)
              {
                  x=a[i];//获取最大数
                  m=i;//最大数位置
              }
              if (a[i]<y)
              {
                  y=a[i];//获取最小数
                  z=i;//最小数位置
              }
          }
          a[z]=a[0];//交
          a[0]=y;//换
          a[m]=a[n-1];//位
          a[n-1]=x;//置
          for (int i=0;i<n;i++)
          {
              cout<<a[i]<<" ";//输出
          }
          return 0;
      }
      

      编程不易😕 ,赞在哪里👀️ ?

      • 4
        @ 2022-8-9 19:57:48

        这一道题可以先求出最大值(max)和最小值(min)然后用 b 和 c 保留最大和最小的索引,然后调用swap函数,调换数组中的值(可以引用万能开头文件),来吧,上代码!

        #include <bits/stdc++.h>
        using namespace std;
        int main()
        {
            int n, a[100], min = 9999999, max = 0, b = 0, c = 0;
            cin >> n; 
            for (int i=1;i<=n;i++)
            {
                cin >> a[i];
                if (a[i] < min)
                {
                    min = a[i];
                    b = i;
                }
                else if (a[i] > max)
                {
                    max = a[i];
                    c = i;
                }
            }
            swap(a[b], a[1]);
            swap(a[c], a[n]);
            for (int i=1;i<=n;i++) cout << a[i] << " ";
            return 0;
        }
        
      • 3
        @ 2023-8-13 16:33:02
        #include<iostream>
        using namespace std;
        int main()
        {
            int n , a[100] , max = 0, min = 100000000,i;
            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++)
            {  
                if (a[i] == min)
                {
                    cout << a[0] << " ";
                    continue;
                }
                if (a[i] == max)
                {
                    cout << a[n-1] << " ";
                    continue;
                }
                cout << a[i] << " ";
            }
            cout << max << " ";
            return 0;
        }
        
      • 3
        @ 2022-5-22 15:29:02

        题目要求,求出数组中的最大值和最小值是第一步;

        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 f = a[0];
        int l = a[n-1];
        

        最后直接遍历元组就行,根据下标判断第一位还是最后一位对应输出,以及根据数据是否是最大还是最小,对应输出原来的第一位和最后一位,其他的照常输出就可以啦(空格隔开)

        	for(int i=0;i<n;i++){
        		if(i==0){
        			//最小值
        		}else if(i==n-1){ 
        			//最大值
        		}else if(a[i] == minn){
        			//原数组首位
        		}else if(a[i] == maxx){
        			//原数组末位
        		}else{
        			//其他不变
        		}
        	} 
        
        • 2
          @ 2023-11-22 19:52:28

          没难度,就是有点长,可以先用变量保存一下a[0]和a[n - 1],当然也可以反过来

          #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;
          }
          

          Copy

          • 2
            @ 2023-4-25 11:48:44

            题不难,就是写出来有点长,我拆了两个括号,这才让他稍微简单了一点点(本来有个地方要用函数的,结果一看,不行😕 )

            这次的开场白太长了(依然在说废话,可以不看) 还是先捋一捋(可能打错了):

            1,先定义变量和数组,然后输入(略)。

            2,找到最大值和最小值,以及他们的下标。(如下)

            int maxn=-1,minn=1000,p1,p2;
            for (int i=1;i<=n;i++)
            {
                 if (a[i]>maxn)
                 {
                     maxn=a[i];
                     p1=i;
                 }
                 if (a[i]<minn)
                 {
                     minn=a[i];
                     p2=i;
                 }
            }
            

            3,交换最小数和第一个数,最大数和最后一个数,可以用原始方法,我这里有两种简单方法

            (1)这是因为maxn和a[n]是一样的,这样可以防止数据丢失。

            a[p1]=a[n];
            a[n]=maxn;
            a[p2]=a[1];
            a[1]=minn;
            

            (2)使用swap函数

            swap(a[p1],a[n])
            swap(a[p2],a[1])
            

            4,输出(略)

            整体代码如下(请付赞观看)。

            #include <iostream>
            using namespace std;
            int main()
            {
                int n;
                int a[101];
                cin>>n;
                for (int i=1;i<=n;i++) cin>>a[i];
                int maxn=-1,minn=1000,p1,p2;
                for (int i=1;i<=n;i++)
                {
                    if (a[i]>maxn)
                    {
                        maxn=a[i];
                        p1=i;
                    }
                    if (a[i]<minn)
                    {
                        minn=a[i];
                        p2=i;
                    }
                }
                swap(a[p1],a[n])
                swap(a[p2],a[1])
                for (int i=1;i<=n;i++) cout<<a[i]<<" ";
                return 0;
            }
            
            • 1
              @ 2024-6-10 14:08:01
              #include<bits/stdc++.h>
              using namespace std;
              int main()
              {
                  int n,a[101],maxx=0,minn=100,x=0,y=0;//x和y用來存儲最大和最小數的下標
                  cin>>n;
                  for(int i=0;i<n;i++)
                  {
                      cin>>a[i];
                      if(a[i]>maxx)//判斷最大和最小
                      {
                          maxx=a[i];
                          x=i;
                      }
                      if(a[i]<minn)
                      {
                          minn=a[i];
                          y=i;
                      }
                  }
                  a[x]=a[n-1];//交換
                  a[y]=a[0];
                  a[n-1]=maxx;
                  a[0]=minn;
                  for(int j=0;j<n;j++)//輸出
                  {
                      cout<<a[j]<<" ";
                  }
              return 0;
              }
              
              • 1
                @ 2024-5-9 21:37:13
                #include <bits/stdc++.h>
                using namespace std;
                int main()
                {
                    int n,m,num1,num2,maxn=0,minn=10000;
                    cin >> n;
                    int a[n];
                    for (int i=0;i<n;i++)
                    {
                        cin >> a[i];//输入数组元素
                        if (a[i]>maxn)//找maxn
                        {
                            maxn = a[i];//设置maxn
                            num1 = i;//设置num1,以便后用
                        }
                        if (a[i]<minn)
                        {
                            minn = a[i];//设置minn
                            num2 = i;//设置num2,以便后用
                        }
                    }
                    m = a[0];//以下为调换元素,不明白的找老师
                    a[0] = minn;
                    a[num2] = m;
                    m = a[n-1];
                    a[n-1] = maxn;
                    a[num1] = m;
                    for (int i=0;i<n;i++)
                    {
                        cout << a[i] << " ";//输出所有元素
                    }
                    return 0;
                }
                
                • 1
                  @ 2024-2-1 22:02:54

                  image


                  直接上代码👇

                  #include <bits/stdc++.h> 
                  using namespace std;
                  int n,a[105],maxx,minn;//a用来存储n个整数,maxx用来存储最大值的下标,minn用来存储最小值的下标
                  int main()
                  {
                  	//注意!!!最大值和最小值初始化为1,因为它们是下标 
                  	maxx=1;
                  	minn=1;
                  	//输入部分(这个不用教了吧) 
                  	cin>>n;
                  	for(int i=1;i<=n;i++)
                  	{
                  		cin>>a[i];
                  	}
                  	//最大值与最小值(的下标)部分 
                  	for(int i=1;i<=n;i++) //再次提醒:maxx和minn是下标 
                  	{
                  		if(a[maxx]<a[i])//注意是a[maxx] 
                  		{
                  			maxx=i;//注意是i 
                  		}
                  		if(a[minn]>a[i])
                  		{
                  			minn=i;//注意是i 
                  		} 
                  	}
                  	//交换部分(swap函数大家都知道吧)
                  	swap(a[1],a[minn]);
                  	swap(a[n],a[maxx]);
                  	//输出部分(应该不用教了吧) 
                  	for(int i=1;i<=n;i++)
                  	{
                  		cout<<a[i]<<" ";//别忘了空格 
                  	} 
                  	return 0;
                  }
                  //自创代码,求赞!!!!!!!
                  

                  AC证明: image


                  给个赞再Copy别人的AC!

                  • 0
                    @ 2024-1-24 21:19:19

                    A C 代 码 , 放 心 食 用 使 用

                    #include <iostream>
                    using  namespace std;
                    int main()
                    {
                        int n,max1,min1,firstnumber,lastnumber;
                        cin>>n;
                        int a[n];
                        for (int i=0;i<n;i++)
                        {
                            cin>>a[i];
                        }
                        firstnumber=a[0];
                        lastnumber=a[n-1];
                        //找最大值
                        max1=a[0];
                        for (int i=0;i<n;i++)
                        {
                            if (a[i]>max1)
                            {
                                max1=a[i];
                            }
                        }
                        //找最小值
                        min1=a[0];
                        for (int i=0;i<n;i++)
                        {
                            if (a[i]<min1)
                            {
                                min1=a[i];
                            }
                        }
                        //输出数组
                        cout<<min1<<" ";
                        for (int i=1;i<n-1;i++)
                        {
                            if (a[i]==min1)
                            {
                                cout<<firstnumber<<" ";
                            }
                            else if (a[i]==max1)
                            {
                                cout<<lastnumber<<" ";
                            }
                            else
                            {
                                cout<<a[i]<<" ";
                            }
                        }
                        cout<<max1<<" ";
                        return 0;
                    }
                    
                    • 0
                      @ 2023-11-19 14:46:42
                      #include<iostream>
                      using namespace std;
                      int n,a[99999],c=0,m,q,b=99999; 
                      int main(){
                      	cin>>n;
                      	for(int i=1;i<=n;i++){
                      		cin>>a[i];
                      	}
                      	for(int i=1;i<=n;i++){
                      		if(a[i]<b){
                      			m=i;
                      			b=a[i];
                      		}
                      		if(a[i]>c){
                      			q=i;
                      			c=a[i];
                      		}
                      	}
                      	swap(a[1],a[m]);
                      	swap(a[n],a[q]);
                      	for(int i=1;i<=n;i++){
                      		cout<<a[i]<<' ';
                      	}
                      	return 0;
                      }
                      
                      
                      • 0
                        @ 2023-8-20 11:30:22
                        #include <iostream>
                        using namespace std;
                        int main()
                        {
                            int a,c =100,d = 0,e,f,g;
                            cin>>a;
                            int b[a];
                            for (int i = 0;i<a;i++)
                            {
                                cin>>b[i];
                                if (c>b[i])
                                {
                                    c = b[i];
                                    g = i;
                                }
                        
                            }
                            for (int i = 0;i<a;i++)
                                if (d<b[i])
                                {
                                    d=b[i];
                                    f = i;
                                }
                            e = b[0];
                            b[0]=c;
                            b[g] = e;
                            e = b[a-1];
                            b[a-1]=d;
                            b[f]=e;
                            for (int i = 0;i<a;i++)
                            {
                                cout<<b[i]<<" ";
                            }
                        }
                        
                        • 0
                          @ 2023-8-8 9:50:41
                          #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;
                          }
                          
                          • 0
                            @ 2023-8-5 8:49:31
                            #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;
                            } 
                            
                            • 0
                              @ 2023-8-4 17:34:13
                              #include <iostream>
                              
                              </add> </span> </us> </weizhi>

                              信息

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