标题:一道简单的c语言习题,对n个数进行排序并输出,问题出在函数
只看楼主
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
结帖率:85.71%
已结贴  问题点数:25 回复次数:2 
一道简单的c语言习题,对n个数进行排序并输出,问题出在函数
#include <stdio.h>
static void rank(int *p,int n);
int main()
{
    int *p,n,i;
    void(*q)(int*,int);//指向rank的指针
    printf("please input n:");
    scanf("%d",&n);
    int str[n];
    p=str;
    printf("please input %d numbers:",n);
    for(i=0;i<n;i++)
    scanf("%d",p++);
    for(i=0,p=str;i<n;i++)
    printf("%d\t",*p++);
    p=str;//p不要忘了复归原值
    (*q)(p,n);
    printf("after ranking the numbers are:");
    for(i=0,p=str;i<n;i++)
    printf("%d\t",*p++);
    return 0;
}
static void rank(int*p,int n)
{
    int i,k,*r,*temp=p,temp2;
    for(k=n-2;k>=0;k--)//利用沉底法排序
    for(i=0,p=temp,r=temp+1;i<=k;i++)
    if(*p>*r)
    {
       temp2=*p;
       *p=*r;
       *r=temp2;
       p++;
       r++;   
    }
}
程序编译没有问题,但输入数据后系统提示.....exe停止运行,不知道问题在哪,求指点
搜索更多相关主题的帖子: include numbers please c语言 
2017-02-14 15:05
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:25 
q 没赋值就使用了?
2017-02-14 15:08
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
得分:0 
回复 2楼 rjsp
好吧,自己都想笑,低级错误,谢了

............
2017-02-14 15:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-474208-1-1.html




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

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