| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1092 人关注过本帖
标题:求5个数从大到小排列,帮帮忙哪里错了?....另外有没有另一种方法做?
只看楼主 加入收藏
C_596322153
Rank: 6Rank: 6
来 自:徽州
等 级:侠之大者
帖 子:182
专家分:466
注 册:2012-1-10
收藏
得分:10 
楼主能写出这样的程序也不容易  帮你把语法错误改了下   算法自己在研究下.
程序代码:
#include<stdio.h>
void main()
{ 
    void exchange(int *p1,int *p2);
    int a,b,k,u,y,*i[5];
    printf("请输入5个数字:");
    scanf("%d,%d,%d,%d,%d",&a,&b,&k,&u,&y);
    i[0]=&a;
    i[1]=&b;
    i[2]=&k;
    i[3]=&u;
    i[4]=&y;
    if(a<b) exchange(i[0],i[1]);
    if(b<k) exchange(i[0],i[2]);
    if(b<u) exchange(i[0],i[3]);
    if(b<y) exchange(i[0],i[4]);
    printf("%d,%d,%d,%d,%d\n",a,b,k,u,y);
}
void exchange(int *p1,int *p2)
{
    int z;
    z=*p1;
    *p1=*p2;
    *p2=z;
}

2012-03-16 10:21
消沉_离别
Rank: 1
来 自:广州
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-3-10
收藏
得分:0 
回复 9楼 迷上编程
我在学指针的方法,可以用指针的方法编一次
2012-03-16 10:22
chan_
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游侠
帖 子:84
专家分:122
注 册:2012-2-29
收藏
得分:0 
顶11楼,无法实现排序!!
2012-03-16 11:47
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:0 
程序代码:
#include "stdio.h"
int main()
{
     int a[5],j;
     int i,temp;
     printf ("请输入五个数子\n");
     for (i = 0;i < 5;i++)
        scanf("%d",&a[i]);
    

     for (i = 0;i < 4;i++)
     {
         for (j = i + 1;j < 5;j++)
         if (a[j] > a[i])
           {
                temp = a[i];
             a[i] = a[j];
             a[j] = temp;
           }
     }
     for (i = 0;i < 5;i++)
     printf("%4d",a[i]);
     return 0;

 }

 

冒泡排序

最基础的往往是你最容易忽略的!
2012-03-16 12:21
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:0 
程序代码:
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    double integer[20],tn;
    int i,j,c;
  
    printf("please type three numbers :\n");
    for(i=0;i<3;i++)
    {
        printf("第%d个:",i+1);
        scanf("%lf",&integer[i]);
    }
    
    
    for(i=0;i<2;i++)
    {
       c=i;
       for(j=i+1;j<3;j++)
        if(integer[j]<integer[c])
         c=j;
       tn=integer[i];
       integer[i]=integer[c];
       integer[c]=tn;
    }
  
    printf("\n The sorted numbers:\n");
    for(i=0;i<3;i++)
      printf("%5.0f",integer[i]);
}

选择排序

最基础的往往是你最容易忽略的!
2012-03-16 12:21
mapy06
Rank: 2
等 级:论坛游民
威 望:1
帖 子:19
专家分:43
注 册:2012-3-6
收藏
得分:0 
多看看书吧,你的代码。。。。。。只能说和C差的太远了,
 1 #include<stdio.h>
  2 #include<stdlib.h>
  3 int main()
  4 {
  5    int a[5]={0};
  6    int i;
  7    printf("请输入5个整数:");
  8    for(i=0;i<5;i++){
  9       scanf("%d",&a[i]);
 10    }
 11    int ru1(const void *x,const void* y){
 12       return *(int*)x-*(int *)y;
 13    }
 14     qsort(a,5,sizeof(int),ru1);
 15     for(i=0;i<5;i++){
 16       printf("%d\t",a[i]);
 17     }
 18    printf("\n");
 19 }
~      
2012-03-16 13:08
C_596322153
Rank: 6Rank: 6
来 自:徽州
等 级:侠之大者
帖 子:182
专家分:466
注 册:2012-1-10
收藏
得分:0 
程序代码:
#include<stdio.h>
void main()
{  
    int n,m;
    void exchange(int *p1,int *p2);
    int a,b,k,u,y,*i[5];
    printf("请输入5个数字:");
    scanf("%d,%d,%d,%d,%d",&a,&b,&k,&u,&y);
    i[0]=&a;
    i[1]=&b;
    i[2]=&k;
    i[3]=&u;
    i[4]=&y;
    for(n=0;n<4;n++)
      for(m=n+1;m<5;m++)
        if(*i[n]<*i[m])
        exchange(i[n],i[m]);
    printf("%d,%d,%d,%d,%d",a,b,k,u,y);  

 
  
}
void exchange(int *p1,int *p2)
{
    int z;
    z=*p1;
    *p1=*p2;
    *p2=z;
}
冒泡
2012-03-16 13:16
快速回复:求5个数从大到小排列,帮帮忙哪里错了?....另外有没有另一种方法做?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016723 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved