| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 507 人关注过本帖
标题:函数调用 选择排序 老是提示一个错误 不知道什么意思 求指点
只看楼主 加入收藏
子弹上膛
Rank: 1
等 级:新手上路
帖 子:22
专家分:4
注 册:2012-12-5
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:3 
函数调用 选择排序 老是提示一个错误 不知道什么意思 求指点
#include<stdio.h>
int main()
{
  int i,a[5];
  int paixu(int b[5]);         //函数的声明


  printf("请输入5个整数\n");
    for(i=0;i<5;i++)          //循环完成输入
        scanf("%d",&a[i]);
           paixu(a);          //调用函数处   
    for(i=0;i<5;i++)         //循环完成输出
        printf("%d",a[i]);
    return 0;
}


void paixu(int b[5])            // 被调用的函数
{
    int i,j,k,m,z;
    for(i=0;i<4;i++)               {
        z=b[i];                 //假定数组的第一个元素是最小值
        for(j=i+1;j<5-i;j++)     //擂台法进行比较
        {
            if(z>b[j])
                z=b[j];            // 比较出一个最小值z
            k=j;                       //记下最小值的位置
        }
        m=b[k];                        //完成最小值的与第i个数交换
        b[k]=b[i];
        b[i]=m;
    }
}
搜索更多相关主题的帖子: 函数 include return 
2013-05-23 23:39
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:7 
int paixu(int b[5]);         //函数的声明
void paixu(int b[5])
定义与声明不一致,另外b[5]没有意义,用b[]就可以了。

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-05-24 06:18
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:7 
(1)函数声明应为:
void paixu(int b[5]);
(2)排序函数:
void paixu(int b[5])           
{
    int i,j,k,m,z;
    for(i=0;i<4;i++)               
    {
        k=i;                 
        for(j=i+1;j<5-i;j++)   
        {
            if(b[k]>b[j])
                k=j;                      
        }
        m=b[k];                        
        b[k]=b[i];
        b[i]=m;
    }
}
(3)按楼主的思路:
void paixu(int b[5])            // 被调用的函数
{
    int i,j,k,m,z;
    for(i=0;i<4;i++)               
   {
        z=b[i];
        k=i;                 
        for(j=i+1;j<5-i;j++)   
        {
            if(z>b[j])
               {
                   z=b[j];            
                   k=j;  
               }         
         
        }
        m=b[k];                        
        b[k]=b[i];
        b[i]=m;
    }
}
2013-05-24 06:59
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:7 
程序代码:
#include<stdio.h>

 int main()

 {
   int i,a[5];
   int paixu(int b[5]);         //函数的声明

  printf("请输入5个整数\n");
     for(i=0;i<5;i++)          //循环完成输入
        scanf("%d",&a[i]);
            paixu(a);          //调用函数处
     for(i=0;i<5;i++)         //循环完成输出
        printf("%d",a[i]);
     return 0;

 }


 int paixu(int b[])            // 被调用的函数
{
     int i,j,k,m,z;
     for(i=0;i<4;i++)             
    {
         z=b[i];                 //假定数组的第一个元素是最小值
        for(j=i+1;j<5-i;j++)     //擂台法进行比较
        {
             if(z>b[j])
                 z=b[j];            // 比较出一个最小值z
             k=j;                       //记下最小值的位置
        }
         m=b[k];                        //完成最小值的与第i个数交换
         b[k]=b[i];
         b[i]=m;
    }

 }

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-05-24 07:33
快速回复:函数调用 选择排序 老是提示一个错误 不知道什么意思 求指点
数据加载中...
 
   



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

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