长度为n的整数序列,把序列中的最小值与第一个数交换,最大值与最后一个数交换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了长度为n的整数序列,把序列中的最小值与第一个数交换,最大值与最后一个数交换相关的知识,希望对你有一定的参考价值。

输入
输入包括两行。
第一行为正整数n(1≤n≤10)。
第二行为n个正整数组成的序列。
输出
输出转换好的序列。数据之间用空格隔开。
样例输入
5
2 1 5 4 3样例输出1 2 3 4 5
#include<stdio.h>
int main()

int a[10],n,i,max,min,j,b;
scanf("%d",&n);
for(i=0;i<n;i++)

scanf("%d",&a[i]);

max=a[0];min=a[0];
if(a[i]>=max)

max=a[i];
j=i;

if(a[i]<=min)

min=a[i];
b=i;

a[j]=a[n-1];a[n-1]=max;
a[b]=a[0];a[0]=min;
for(i=0;i<n;i++)

printf("%d ",a[i]);
printf("\n");

return 0;

哪有问题 求解。

参考技术A //这样就好了
#include<stdio.h>
int main()
int a[10],n,i,max,min,j,b,t;
scanf("%d",&n);
for(i=0;i<n;i++)

scanf("%d",&a[i]);

max=a[0];
min=a[0];
for(i=0;i<n;i++)//补充内容
if(a[i]>=max)
max=a[i];
j=i;

if(a[i]<=min)
min=a[i];
b=i;


a[j]=a[n-1];
a[n-1]=max;
a[b]=a[0];
a[0]=min;

for(i=0;i<n;i++) //删去
printf("%d ",a[i]);
printf("\n");

return 0;
本回答被提问者采纳

第三次过程性考核

码云地址:https://gitee.com/axsj/disancikaohe/tree/master

7-4  交换最小值和最大值 (15 分)

本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。

注意:题目保证最大和最小值都是唯一的。

输入格式:

输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。

输出格式:

在一行中顺序输出交换后的序列,每个整数后跟一个空格。

输入样例:

5
8 2 5 1 4

输出样例:

1 2 5 4 8 

public class Main{
    public static void main(String[] args){
        Scanner read=new Scanner(System.in);
        int n=read.nextInt();
        int a[]=new int[n];
        int i;
        for(i=0;i<n;i++){
            a[i]=read.nextInt();
        }
        int max=0;
        int min=0;
        for(i=1;i<n;i++){
            max=(a[i]>a[max])?i:max;
            min=(a[i]<a[min])?i:min;
        }
        int change;
        change=a[0];
        a[0]=a[min];
        a[min]=change;
        if(max==0){
            max=min;
        }
        change=a[n-1];
        a[n-1]=a[max];
        a[max]=change;
        for(i=0;i<n;i++){
            System.out.print(a[i]+" ");
        }
    }
}
技术分享图片

 运行结果:

技术分享图片

 

知识点:数组、循环及简单的交换

 

7-5 简化的插入排序 (20 分)

本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。

输入格式:

输入在第一行先给出非负整数N(<10);第二行给出N个从小到大排好顺序的整数;第三行给出一个整数X。

输出格式:

在一行内输出将X插入后仍然从小到大有序的整数序列,每个数字后面有一个空格。

输入样例:

5
1 2 4 5 7
3

输出样例:

1 2 3 4 5 7 


技术分享图片
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner read=new Scanner(System.in);
        int n=read.nextInt();
        int a[]=new int[n+1];
        int i;
        for(i=0;i<n;i++){
            a[i]=read.nextInt();
        }
        a[n]=read.nextInt();
        Arrays.sort(a);
        for(i=0;i<=n;i++){
            System.out.print(a[i]+" ");
        }
    }
}
技术分享图片

 运行结果:

技术分享图片

 

知识点:数组

思路:插入一个数后,数组长度变长,并需要加一

 

7-8 IP地址转换 (20 分)

一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。

输入格式:

输入在一行中给出32位二进制字符串。

输出格式:

在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。

输入样例:

11001100100101000001010101110010

输出样例:

204.148.21.114


技术分享图片
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner read=new Scanner(System.in);
        String n=read.nextLine();
        String a=n.substring(0,8);
        String b=n.substring(8,16);
        String c=n.substring(16,24);
        String d=n.substring(24,32);
        int a1=Integer.parseInt(a,2);
        int b1=Integer.parseInt(b,2);
        int c1=Integer.parseInt(c,2);
        int d1=Integer.parseInt(d,2);
        System.out.print(a1+"."+b1+"."+c1+"."+d1);
    }
}
技术分享图片

 运行结果:

技术分享图片

没有一点点思路,有的行不通

 

7-4 说反话-加强版 (20 分)

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:

测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。

输出格式:

每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。

输入样例:

Hello World   Here I Come

输出样例:

Come I Here World Hello



技术分享图片
import java.io.IOException;  
import java.text.ParseException;  
import java.util.Scanner;  
  public class Main {  
  public static void main(String[] args) 
  throws ParseException, IOException {  
    Scanner scanner = new Scanner(System.in);  
    String str = scanner.nextLine().trim();  
    String[] strs = str.split(" +");  
    for(int i=strs.length-1;i>=0;--i)  
    {  
        System.out.print(strs[i]);  
        if(i!=0)  
          System.out.print(" ");  
    }  
  }
}
技术分享图片

 运行结果:

技术分享图片

 

 

 













以上是关于长度为n的整数序列,把序列中的最小值与第一个数交换,最大值与最后一个数交换的主要内容,如果未能解决你的问题,请参考以下文章

ZZNUOJ_C语言1120:最值交换(附完整源码)

第三次过程性考核

[PTA]实验7-1-10 交换最小值和最大值

嗯嗯 用c语言编写从键盘输入10个整数,将最小值与第一个数交换,最大值与最后一个交换,然后输出交换后的数

C语言.任意n个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。

序列排序