用C#输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

作者&投稿:博咽 (若有异议请与网页底部的电邮联系)
C语言输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组~

唯一的一个问题
就是如果最大最小值本来就在第一个或者最后一个的情况.
比如, 最小值本来在a[0] 最大值在a[4]
这样循环后min=0 max=4
于是 先做了一次交换 a[max]和a[0] 也就是a[4]和a[0]
然后 又做了一次交换, a[min]和a[4] 还是a[0]和a[4] 又换回去了.
导致最小在a[0] 最大在a[4] 与要求不符.
修改方式 就是
m=array[max];array[max]=array[0];array[0]=m;if(min==0) min=max;//如果min已经被换走了,那么把min赋值成被换的位置.m=array[min];array[min]=array[4];array[4]=m;

#include
using namespace std;
void swap(int& a, int& b)
{
int temp=a;
a=b;
b=temp;
}
void change(int *a,int len)
{
int max=a[0];
int maxpos=0;
int min=a[0];
int minpos=0;
for (int i=1; i<len; i++)
{
if (a[i]>max)
{
max=a[i];
maxpos=i;
}
if (a[i]<min)
{
min=a[i];
minpos=i;
}
}
swap(a[0],a[maxpos]);
swap(a[len-1],a[minpos]);
}
void main()
{
int a[]={3,1,4,2,0,5,7,6};
int len=sizeof(a)/sizeof(int);
change(a,len);
for (int i=0; i<len; i++)
{
cout<<a[i]<<endl;
}

}

public static void ArrayOder(ref int[] arr)
        {
            int maxValue = arr.Max();
            int minValue = arr.Min();
            int firstValue = arr[0];
            int lastValue = arr[arr.Length - 1];
            ArrayList alMin = new ArrayList();
            ArrayList alMax = new ArrayList();
            
            for (int i = 0; i < arr.Length; i++)
            {
                //max
                if (arr[i] == maxValue)
                {
                    if (i > 0)
                        alMax.Add(i);                                       
                }
                //min
                if (arr[i] == minValue)
                {
                    if (i < arr.Length - 1)
                        alMin.Add(i);
                }
            }

            arr[0] = maxValue;
            for (int m = 0; m < alMax.Count; m++)
            {
                arr[(int)alMax[m]] = firstValue;
            }

            arr[arr.Length - 1] = minValue;
            for (int n = 0; n < alMin.Count; n++)
            {
                arr[(int)alMin[n]] = lastValue;
            }
            
        }

随便写的,可以多个多大,最小值;使用的引用参数,会改变原数组



取得最大最小值容易,数组本身就有Max和Min两个方法可以取得最大最小值。

但是你想交换元素位置,就必须知道他的index,这就只能循环查找了,而且有多个最大最小值的情况该怎么处理?

int[] arr = { 3, 2, 5, 8, 1, 9, 4 };
int temp = arr[0];
int indexMax = 0;
int indexMin = 0;
int flag = 0;
for (int i = 0; i < arr.Length; i++)
{
    if (arr[i] == arr.Max())
    {
        indexMax = i;
        flag++;
    }
    if (arr[i] == arr.Min())
    {
        indexMin = i;
        flag++;
    }
    if (flag == 2)
    {
        break;
    }
}
arr[0] = arr[indexMax];
arr[indexMax] = temp;
temp = arr[arr.Length - 1];
arr[arr.Length - 1] = arr[indexMin];
arr[indexMin] = temp;


namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{

int[] array = new int[6];
{
//输入数组
for (int i = 1; i <= 5; i++)
{

Console.WriteLine("请输入第{0}个同学的分数", i);
array[i] = int.Parse(Console.ReadLine());
}

Sort(array);//排序
//输出
for (int i = 0; i <array.Length; i++)
{
Console.WriteLine(array[i].ToString());
}
Console.ReadLine();

}

}
/// <summary>
/// 排序
/// </summary>
/// <param name="array"></param>
public static void Sort(int[] array)
{
int i, j; // 循环变量
int temp; // 临时变量
for (i = 0; i < array.Length - 1; i++)
{
for (j = 0; j < array.Length - 1 - i; j++)
{
if (array[j] > array[j + 1])
{
// 交换元素
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}

}

}

}

}


c在爱情的含义是什么
C指的是现在流行的C型爱情观。 C型爱情观 “C型爱情观”指的是对现代爱情关一种新的定义。在爱情中,有进有退、牵手分手的循环,已不再是个稀奇风景,而“有始有终”,在“C型爱情观”中有了崭新的定义——有开始,就必有终了之时。 它的最大特点在于人们不再将青春耗损在不良关系上。 C型人生取代了线型...

c在化学中指什么意思
C在化学中有两种含义:1、表示浓度,单位为mol\/L,计算式为:C=n\/V. C=1000ρω\/M。含义:以1升溶液中所含溶质的摩尔数表示的浓度。以单位体积里所含溶质的物质的量(摩尔数)来表示溶液组成的物理量,叫作该溶质的摩尔浓度,又称该溶质物质的量浓度。溶质含量越多,浓度越大。浓度可以用一定...

女生发个c是什么意思啊
女生发个c是什么意思啊1 c的意思是 娘 就是说人 默默唧唧 不太爷们 形容词,c即cissy,而cissy=sissy,sissy意为柔弱或怯弱的男孩、女孩子气的男孩 很c的gay,就是指娘娘腔的gay。c字母起源 1、字母C的产生可能是由于一个投掷棒的符号,像在古埃及的'象形文字里并很早出现在闪族的书面当中-...

c是什么意思?
c++的具体含义如下:C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。C++不仅拥有计...

c是什么意思?
c++的具体含义如下:C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。C++不仅拥有...

c是什么意思医学
c是什么意思医学1 它是放射科的一种检查,叫CT泌尿系造影,就是在腹盆CT的基础上进行加工重建使两侧肾脏、输尿管及膀胱显示出来,c的意思就是颈椎,比如c4就是第四颈椎 c什么意思 大写C代表 在化学中,表示碳的化学符号 在乐理中,表示:音阶中的C音 调号中于C音开始的音乐的C大调及C小调 拍子...

排列组合的C是什么?
C是组合:比如ABC中选2个组合。那么AB,BA算一种组合,一共有AB,AC,BC三种组合。P是排列:(人教版把P写成A) 比如从ABC中选两个排列,那么AB,BA算两种组合,一共有AB BA AC,CA,BC,CB六种排列。从n个不同元素中,任取m(m≤n,m与n均为自然数)个元素按照一定的顺序排成一列,叫做...

数学中c怎么计算
组合数C(n,m)的计算公式为:例题:

排列组合c是什么意思?
排列组合是组合学最基本的概念。所谓排列,就是指从给定个数的元素中取出指定个数的元素进行排序。组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。排列组合的中心问题是研究给定要求的排列和组合可能出现的情况总数。排列组合与古典概率论关系密切。排列组合c的公式:C(n,m)=A(n,m...

c开头是什么车
C字头的列车是城际动车组列车。城际列车,又称城际专列(Inter-City Rail Service),是指往返于相邻重要城市或城市群之间的客运列车,一般全程运行距离较近、乘车时间较短、途经城市较少,不配置卧铺车厢。和谐号动车的车型,由原来的动车型号D改为C,并将其命名为城际轻轨。 (G字头车次是指高铁)高铁...

宜川县15237229385: 用C#输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组. -
主父钩盆炎: 取得最大最小值容易,数组本身就有Max和Min两个方法可以取得最大最小值. 但是你想交换元素位置,就必须知道他的index,这就只能循环查找了,而且有多个最大最小值的情况该怎么处理? int[] arr = { 3, 2, 5, 8, 1, 9, 4 }; int temp = arr[0]; int ...

宜川县15237229385: 用C语言编程实现输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组(用指针的方法) -
主父钩盆炎: //运行时,请随机输入10个数!#include<stdio.h> void main(){ int i,j,k,f[10],max,min,a,b; for(i=0;i<10;i++) scanf("%d",&f[i]); a=b=0; max=min=f[0]; for(j=1;j<10;j++) {if(f[j]>max) {max=f[j]; a=j;} if(f[j]<min) {min=f[j]; b=j;} } k=f[0]; f[0]=f[b]; f[b]=k; if(f[9]!=...

宜川县15237229385: 从键盘输入一个一维数组将最大的元素与第一个元素交换,最小的元素与最后一个元素交换,并输出原来的数组求此题思路 -
主父钩盆炎:[答案] 遍历一位数组,得到最大值和最大值的位置,得到最小值和最小值的位置,然后将数组最大值的位置与第一个元素交换,最小值的位置与最后一个元素交换. 不懂可以上代码

宜川县15237229385: 从键盘输入数组元素,最大的一个与第一个元素交换,最小的与最后一个元素交换,并输出数组 -
主父钩盆炎: int a[10]; 赋值 a[max] a[min]分别存放数组中最大最小值 然后各自交换

宜川县15237229385: C语言——将用户输入的10个元素的数组中最大的与第一个元素交换,最小的与最后一个元素交换,输出数组 -
主父钩盆炎: #include<stdio.h> int main(void) { int a[10],i,min,max,b,c; printf("input 10 integers:"); for(i=0;i<10;i++) scanf("%d",&a[i]); min=0;max=0; for(i=1;i<10;i++) if(a[i]<a[min]) min=i;b=a[min]; a[min]=a[9]; a[9]=b;for(i=1;i<10;i++) if(a[i]>a[max]) max=i; ...

宜川县15237229385: 求解答c语言编程:将数组中最大的值与第1个元素交换,最小值与最后一个元素交换,输出数组 -
主父钩盆炎: char a[LEN];int max=a[0],min=a[0],maxid=0,minid=0,tmp; int i; for (i=1;i<len;i++) { if (max < a[i]) { max=a[i]; maxid=i; } if (min > a[i]) { min=a[i]; minid=i; } } tmp=a[0]; a[0]=a[maxid]; a[maxid]=tmp; tmp=a[len-1]; a[len-1]=a[minid]; a[minid]=tmp;

宜川县15237229385: 在c#中,怎样输出一组数组中的最大值和最小值?最好各举个例子 -
主父钩盆炎: 最笨的方法是遍历一下数组: 假设数组是int num[100] int max; int min; for(int i=0;i<100;i++) {if(i!=0){if(max<num[i])max=num[i];if(min>num[i])min=num[i];}else{max=num[0];min=num[0];} } //循环后,max就是最大值,min就是最小值

宜川县15237229385: C语言编程题,输入10个整数到1维数组中,将最大值与第一个元素对调,将最小值与最后一个元素对调 -
主父钩盆炎: #include <stdio.h> main() {int a[10];int max=0,min=0,temp=0;int i=0;for(i=0;i<=9;i++)scanf("%d",&a[i]);for(i=1;i<=9;i++){if (a[i]<a[min])min=i;else if(a[i]>a[max])max=i;}temp=a[max],a[max]=a[0],a[0]=temp;temp=a[min],a[min]=a[9],a[9]...

宜川县15237229385: 输入数组,最大的与第一个元素交换,最小的与最后一个交换,输出数组,数组长度定义为10,输出数组每个元 -
主父钩盆炎: 一下是源代码,希望对你有所帮助!!! main() { int number[10]; input(number); max_min(number); output(number); } input(number) int number[10]; {int i; for(i=0;i<9;i++)scanf(

宜川县15237229385: 初学者问:如何设计C程序,使输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组. -
主父钩盆炎: 你的意思是按从大到小的顺寻排列么? #include"stdio.h" void main() { int a[10],i,t,j; printf("please input ten numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("the number is:\n"); for(j=0;j<10;j++) printf("%d ",a[j]); printf("\n"); for(i=...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网