C语言中从键盘上输入三个数,将之排序后按由大到小的顺序输出

Python021

C语言中从键盘上输入三个数,将之排序后按由大到小的顺序输出,第1张

具体操作方法如下:

#include<stdio.h>

int main(void)

{int a,b,c,t

printf("请输入三个数")

scanf("%d%d%d",&a,&b,&c)

if(a<b)

{t=aa=bb=t}

if(b<c)

{t=bb=cc=t}

if(a<b)

{t=aa=b,b=t}

printf("从大到小:%d %d %d",a,b,c)

system("pause")

return 0}

注意:中间的t=aa=bb=t,就是交换a和b的位置,总是把大的换到前面来。

扩展资料:

c语言任意输入5个数,并按从大到小顺序输出的方法如下:

#include <stdio.h>

#include <stdlib.h>

int main()

{int a[5]

int i,j,k

for(i=0i<=4i++)

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

for(i=0i<=4i++){

for(j=0j<=4j++)

{if(a[i]>a[j])

{k=a[i]a[i]=a[j]a[j]=k}}}

printf("排序结果是:\n")

for(i=0i<=4i++)

{  printf("%d\t",a[i])

}return 0

用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:

#include<stdio.h>

int main()

{

int i,j,a[10],t

printf("输入数")

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

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

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

{

for (j = i + 1j <10j++)

if (a[i] <a[j]){

t = a[i]

a[i] = a[j]

a[j] = t

}

}

printf("从大到小")

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

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

return 0

}

扩展资料:

代码还可以设计,如下:

#include<stdio.h>

int main()

{

int a[10],i,j,t//定义数组

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

scanf("%d",&a[i])//给数组赋值

}

for(i=0i<9i++)//10个数,进行9轮比较

for(j=0j<10-ij++){//第一个数比较9次,依次递减

if(a[j]>a[j+1]) {//交换值

t=a[j]

a[j]=a[j+1]

a[j+1]=t

}

}

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

printf("%d\n",a[i])//输出数组的值

}

return 0

}

}

printf("the sorted numbers:\n")

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

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

printf("\n")

}

参考资料:百度百科-printf

代码1.

// 输入3个数,要求按从小到大顺序输出  

  

#include <stdio.h>  

  

int main()  

{  

    int a,b,c,t  

    printf("请输入三个数:")  

    scanf("%d%d%d",&a,&b,&c)  

    if(a > b)  

    {  

        t = a  

        a = b  

        b = t  

    }  

    if(a > c)  

    {  

        t = a  

        a = c  

        c = t  

    }  

    if(b > c)  

    {  

        t = b  

        b = c  

        c = t  

    }  

    printf("从小到大的顺序是:%d  %d  %d\n",a,b,c)  

    return 0  

}

代码2.

输入3个字符串,按从小到大顺序输出。  //先用程序对三个数进行从小到大排序,然后修改程序

#include<stdio.h>

#include<string.h>

int main()

{void swap(char *pt1,char *pt2)

 char a[20],b[20],c[20]

 char *p1,*p2,*p3

 printf("请输入三个字符串:")

 gets(a)

 gets(b)

 gets(c)

 //或用scanf("%s,%s,%s",a,b,c)

 p1=&a[0]p2=&b[0]p3=&c[0]//三个指针分别指向三个字符数组

 if(strcmp(*p1,*p2)>0)swap(p1,p2)//if(strcmp(a,b)>0)swap(a,b) //比较两个字符串的大小,为什么用前一句的时候会出现警告呢

 

 if(strcmp(a,c)>0)swap(a,c)//if(strcmp(*p1,*p3)>0)swap(*p1,*p3)

 if(strcmp(b,c)>0)swap(b,c)// if(strcmp(*p2,*p3)>0)swap(*p2,*p3)

 printf("由小到大排列:%s\n%s\n%s\n",a,b,c)

 return 0

}

void swap(char *pt1,char *pt2)

{ char t[20]

   strcpy(t,pt1)

   strcpy(pt1,pt2)

   strcpy(pt2,t)

//t=*pt1*pt1=*pt2*pt2=t

}

代码3.

#include<stdio.h> 

#include<string.h> 

#define SIZE 3 

#define LEN 50 

int main(void) 

    char str[SIZE][LEN] 

    char (*pst)[LEN]=str 

    char temp[LEN] 

    int i,j 

    

    printf("Please enter 3 string.\n") 

    

    for(i=0i<SIZEi++) 

    { 

        fgets(*(pst+i),LEN,stdin)

     }

    printf("Befor sort:\n") 

    

    for(i=0i<SIZEi++)

     { 

         fputs(*(pst+i),stdout)

     

     } 

     for(i=0i<SIZE-1i++)

          for(j=i+1j<SIZEj++) 

          { 

          

              if(strcmp(*(pst+i),*(pst+j)) == 1)

              { 

                  strcpy(temp,*(pst+i))

                  strcpy(*(pst+i),*(pst+j))

                  strcpy(*(pst+j),temp)

               } 

            

           } 

       printf("After sort:\n") 

       for(i=0i<SIZEi++) 

       { 

           fputs(*(pst+i),stdout)

        }

       

}