| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 745 人关注过本帖
标题:顺序排序这样写程序为什么会错误呢/
取消只看楼主 加入收藏
饶强c
Rank: 1
等 级:禁止访问
帖 子:15
专家分:7
注 册:2014-7-10
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:2 
顺序排序这样写程序为什么会错误呢/
这是我写的一个对整数数组按从小到大的顺序排序的程序,请大家帮我看看哪里写错了,谢谢了;
程序代码:
/**************************************************************************************************************
*file:paixu.c
*
*function:顺序排序程序
*
***************************************************************************************************************/
#include<stdio.h>
#define max 1000 //定义最大数组长度1000;
#define sign 123//定义终止输入标识符:数字123;
static int findsmallindex(int array[max],int i,int n);//寻找最小整数下标函数声明;
static void swapinteger (int array[max],int i,int smallindex);//交换数组元素函数声明;
void main()
{
    int array[max],n=0,value,smallindex,i;
    printf("this program sort the first n elements in array into increasing numberical order");              
    printf("the length of the array must less than 1000\n");
    printf("please input the data and use the integer 123 as terminate sign\n");             
    while(1)//用户输入数据存入数组array[max]循环;
    {
        scanf("%d",&array[n]);
        value=array[n];
        if(value==sign)
        {
            printf("terminate sign is occur\n");
            break;
        }
        if(n>=1000)
        {
            printf("the input is too many\n");
            break;
        }
        n++;
    }
    for(i=0;i<n-1;i++)//排序循环;
    {
        smallindex=findsmallinteger(array[max],i,n-1);//寻找i到n的最小整数下标smallinteger函数;
        swapinteger(array[max],i,smallindex);//交换array[i]和array[smallindex]函数;
    }
    for(i=0;i<=n-1;i++)//输出循环;
    {
        printf("%d\t",array[i]);
    }
    printf("\n");
}
//子函数1:寻找最小整数的下标函数;
static int findsmallinteger(int array[max],int i,int n)
{
    int j,smallest=array[i],k=i;
    for(j=i+1;j<=n;j++)
    {
        if(array[j]<smallest)
        {
            smallest=array[j];
            k=j;
        }
    }
    return (k);
}

 //子函数2:交换数组元素函数;
static void swapinteger (int array[max],int i,int smallindex)
{
    int temp;
    temp=array[i];
    array[i]=array[smallindex];
    array[smallindex]=temp;
}


搜索更多相关主题的帖子: function file 
2014-07-14 21:29
饶强c
Rank: 1
等 级:禁止访问
帖 子:15
专家分:7
注 册:2014-7-10
收藏
得分:0 
回复 2 楼 wssy213
这两个函数错了吗?
2014-07-15 09:42
饶强c
Rank: 1
等 级:禁止访问
帖 子:15
专家分:7
注 册:2014-7-10
收藏
得分:0 
回复 4 楼 embed_xuel
请版主明示,我还是没看出来哪里出现了array[0]的,你方便吧具体的代码段圈一下吗?
2014-07-15 10:45
快速回复:顺序排序这样写程序为什么会错误呢/
数据加载中...
 
   



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

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