李现实 发表于 2020-6-19 00:53:45

c语言问题求助

请问怎么做能教一下吗

Darth_EF 发表于 2020-6-19 04:14:43

#include <stdlib.h>

int arr;
void input(int index);
void getMinMax();
void print();

int main(){
    printf("输入10个数字\n");
    for(int i=9;i>=0;--i){
      input(i);
    }
    getMinMax();
    print();
}

void input(int index){
    int value;
    scanf("%d",&value);
    arr=value;
}

void getMinMax(){
    int i,j,temp;
    for(i=0;i<9;i++){
      for(j=0;j<9-i;j++){
            if(arr>arr){
                temp=arr;
                arr=arr;
                arr=temp;
            }
      }
    }
}

void print(){
    for(int i=0;i<10;++i){
      printf("%d\t",arr);
    }
}

405794672 发表于 2020-6-19 09:42:22

冒泡排序。第一个元素与第二个对比,小于可以不用对换,大于就对换。然后依次循环下去
第一次循环完毕,最大的那个数就可以跑到最末尾了。注意,这次循环只有九次。十个数,只需要九次对比。
然后继续从头开始,这次循环八次。因为最后的那个不用再换了。它是最大的。
页: [1]
查看完整版本: c语言问题求助