用C语言编程实现:输入10个数字,最小数与第一个数交换,最大数与最后一个数交换

简单点的

#include <stdio.h>

void SwapVal(int *src, int len)
{
    int max , min, maxlen = 0, minlen = 0;
    max = min = src[0];   // åˆå§‹åŒ–最大、最小值暂时为第一个
    for (int i = 1; i < len; i++)
    {
        if (max < src[i])  // å…ƒç´ å¦‚果比最大数的,则重置最大值,及其索引
        {
            max = src[i];
            maxlen = i;
        }
        else if (min > src[i])// å…ƒç´ å¦‚果比最小数的,则重置最小值,及其索引
        {
            min = src[i];
            minlen = i;
        }
    }
    if (0 != minlen) // å¦‚果不同才交换
    {
        int tem = src[0];
        src[0] = src[minlen];
        src[minlen] = tem;
    }
    if (len-1 != maxlen)
    {
        int tem = src[len-1];
        src[len-1] = src[maxlen];
        src[maxlen] = tem;
    }
}

int main()
{
    int num[10], i = 0;
    printf("请输入十个数:");
    for (i = 0; i < 10; i++)
        scanf("%d", &num[i]);
    SwapVal(num, 10);
    printf("交换后的数组:");
    for (i = 0; i < 10; i++)
        printf("%d ", num[i]);
    return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2008-11-12
#include "stdio.h"
void main()
{
int a[10], i, max, min,t;
for(i=0;i<10;i++)
scanf("%d", &a[i]);
max=min=0; // 初始化最大和最小值的下标
for(i=1;i<10;i++)
{
if(a[i]>a[max]) max=i; // 得到最大值的下标
if(a[i]<a[min]) min=i; // 得到最小值的下标
}
t=a[0]; a[0]=a[min]; a[min]=t; // 最小数与第一个数交换
t=a[9]; a[9]=a[max]; a[max]=t; // 最大数与最后一个数交换
}
第2个回答  2008-11-12
#include <stdio.h>
void main()
{

double min,max;
double a[10];
int i;
printf("Please input ten numbers:");
for(i=0;i<10;i++)
scanf("%lf",&a[i]);
min=a[0];max=a[9];
for(i=1;i<9;i++)
{
if(a[i]<min)
min=a[i];
if(a[i]>max)
max=a[i];
}
printf("The max is %lf,the min is %lf.\n",max,min);
}
这种题最好还是自己编,要不等着什么时候练啊本回答被提问者采纳
第3个回答  2008-11-12
好了,就是他了
#include <stdio.h>
void fun(int *a,int n)
{
int max,min,i,p_max,p_min,temp;
max=min=a[0];
p_max=p_min=0;
for(i=1;i<n;i++)
{
if(a[i]>max)
{
max=a[i];
p_max=i;
}
if(a[i]<min)
{
min=a[i];
p_min=i;
}
}
temp=a[p_max];
a[p_max]=a[n-1];
a[n-1]=temp;
temp=a[p_min];
a[p_min]=a[0];
a[0]=temp;
}
void main()
{
int a[10],i;
clrscr();
printf("Please input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
fun(a,10);
printf("The result is:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
getch();
}
第4个回答  2008-11-12
#include<stdio.h>
#include<conio.h>
void main()
{
int array[10];
int i,min,max;
clrscr();
printf("Please input 10 numbers:\n");
for(i=0;i<10;i++)
{
scanf("%d",&array[i]);
}
for(i=0;i<10;i++)
{
printf("%4d",array[i]);
}
printf("\n");
min=array[0];
max=array[9];
for(i=0;i<10;i++)
{
if(array[i]<min)
{
min=array[i];
}
if(array[i]>max)
{
max=array[i];
}
}
printf("max is %d and min is %d",max,min);
getch();
}

用C语言编程实现:输入10个数字,最小数与第一个数交换,最大数与最后一...
maxlen = 0, minlen = 0; max = min = src[0]; \/\/ 初始化最大、最小值暂时为第一个 for (int i = 1; i < len; i++) { if (max < src[i]) \/\/ 元素如果比最大数的,则重置最大值,

...最小的数与第一个数对换,把最大的数与最后一个数对换?
void input(int a[10]){ int i;for (i=0;i<10;i++){ scanf("%d",&a[i]);} } void exchange(int a[10]){ int i,min,max,temp,big,small;min = max = a[0];for (i=0;i<10;i++){ if (maxa[i]){ min = a[i];small = i;} } temp=a[0];a[0]=a[small];...

求教:C语言输入10个整数,将其中最小的数与第一个数字对换,把最大的数字...
include<iostream> include<cmath> using namespace std;int main(){ int b=0,c=10,i,k;int a[10]={0};\/\/用的4.9.9.2版本,数组从下标为1开始 for(i=1;i<=10;i++){ cin>>a[i];b=max(b,a[i]);c=min(c,a[i]);} a[1]=b;a[10]=c;for(k=1;k<=10;k++){ c...

...输入10个整数,将其中最小的数与第一个数交换,最大的数与最后一个数...
void input(int a[10]){ int i;for(i=0;i<10;i++){ scanf("%d",&a);} } void exchange(int a[10]){ int i,min,max,temp,big,small;min=max=a[0];for(i=0;i<10;i++){ if(max<a){ max=a;big=i;} if(min>a){ min=a;small=i;} } temp=a[0];a[0]=a[smal...

...最小的数与第一个数对换,把最大的数与最后一个数对换。
\/\/最小换第一个 tmp=array[0];array[0]=array[sm];array[sm]=tmp;\/\/最大换第十个 tmp=array[9];array[9]=array[bg];array[bg]=tmp;} void output(int array[10]){ int i;for (i=0;i<10;i++){ printf("%d ",array[i]);} printf("\\n");} main(){ int number[10];...

C语言编程,要用指针。输入十个数,将最小值与第一个互换,最大值与最后...
void max_min_value(int array[10])\/\/交换最大值和最小值函数 { int *max,*min,*p,*array_end,temp;\/\/temp为整型变量,用于后面的值交换 array_end=array+10;max=min=array;for(p=array+1;p<array_end;p++)if(*p>*max) max=p;else if(*p<*min) min=p;temp=array[0];array[0]...

...最小的数与第一个数对换,把最大的数与最后一个数对换。
地址是array+9,所以我觉得是这里出了问题,因为p指向的array+10的地址储存的是个未知的值,下面再进行交换的时候再用*p作为中间量进行值的交换时可能就会出问题。所以我建议楼主在上面这段代码下写个:printf("now,*p=%d\\n",*p);看*p是否能够正确打印出来。再定义一个整型变量temp作为中间变量应该...

...最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数...
pmin=p; } temp=a[0]; a[0]=*pmin; *pmin=temp; if(pmax==a) { pmax=pmin; } temp=a[9]; a[9]=*pmax; *pmax=temp;}void out(int a[10]){ int i; for(i=0; i<10; i++) printf("%d ",a[i]);\/\/有修改}int main(){ int a[10],i;...

c语言输入10个整数,将其中最大数与第一个数交换,最小数与最后一个数交 ...
exchange(int* p) \/\/将最小的数与第一个数对换,把最大的数与最后一个数对换。{ int i, *max = p, *min = p, temp; \/\/<=== for (i = 1; i < N; i++) if (*(p + i) > *max)\/\/<=== max = (

C语言输入10个数最大值与最后一个数交换 最小值与第一个交换
include <stdio.h>int main(){int i,t,n,maxi=0,mini=0,a[10]; n=10; for(i=0;i<n;i++) {scanf("%d",&a[i]); if(a[i]>a[maxi])maxi=i; else if(a[i]

相似回答