拂去烟尘


私信TA

用户名:fuquyanchen

访问量:786

签 名:

等  级
排  名 9290
经  验 443
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 东北林业大学
专  业

  自我简介:

一、网上搜的正确答案。


#include <stdio.h>

const int N=1<<29;

int a[15],min1,max1,b,k;

void make()

{

    for(int i=0; i<10; i++)

    {


        if(a[i]<min1)

        {

            b=i;

            min1=a[i];

        }

    }

    int temp;

    temp=a[b];

    a[b]=a[0];

    a[0]=temp;

    for(int i=0; i<10; i++)

    {

        if(a[i]>max1)

        {

            k=i;

            max1=a[i];

        }

    }

    temp=a[k];

    a[k]=a[9];

    a[9]=temp;


}

void print()

{

    int i;

    for(i=0; i<10; i++)

    {

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

    }

    printf("\n");

}

int main()

{


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

    {

        min1=N;

        max1=-N;

        for(int i=1; i<10; i++)

        {

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

        }

        make();

        print();

    }

}


二、我的答案,本地运行结果也是正确的,可是提交就是不对,神尴尬。


#include <iostream>

#include <cstdio>

using namespace std;

void input(int *number);

void change(int *number);

void output(int *number);

int main()


{

    int number[10];

    input(number);

    change(number);

    output(number);


    return 0;

}


void input(int *number)

{

    for (int i=0; i<10; i++)

        cin>>number[i];

}


void change(int *number)

{

//将数组首地址赋值给指针变量, 即指针变量指向数组的第一个元素

    int *max, *min, *p, temp;

    max=min=number; //因为是右结合,所以这样写;一右而不右,三右赋值右

/*循环变量初始值:数组第二个值的地址; 循环条件:数组最后一个地址,

* 即(number+length-1); 循环变量增值:地址+1.*/

    for (p=number+1; p<number+10; p++)

        if (*p > *max)

            max=p;  //将大数地址赋给max

        else if (*p < *min)

            min=p;  //将小数地址赋给min

    temp=number[0];

    number[0]=*min;

    *min=temp;

    temp=number[9];

    number[9]=*max;

    *max=temp;

}


void output(int *number)

{

    int *p;

    for (p=number; p<number+10; p++)

        cout<<*p<<" ";

    cout<<endl;

}


 

0.0分

0 人评分

  评论区