| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 626 人关注过本帖
标题:求高手解决一下问题,一道C语言题目帮忙看一下问题出在哪里?不胜感激!
只看楼主 加入收藏
枯叶蝴蝶
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:48
专家分:133
注 册:2011-6-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
求高手解决一下问题,一道C语言题目帮忙看一下问题出在哪里?不胜感激!
/*.通过自定义函数paixu(),实现对一维数组前10 个元素从大到小排序。*/



#include<stdio.h>
void main()
{
    void paixu(int x[],int n);
    int *p,i,a[80];
    p=a;
    for(i=0;i<10;i++)
    scanf("%d",p++);
    paixu(p,10);
    p=a;
    for(p=a,i=0;i<10;i++)
    {
        printf("%d",*p);
        p++;
    }
    getch();
}
void paixu(int x[],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        if(x[j]>x[k]) k=j;
        if(k!=i)
        {t=x[i];x[i]=x[k];x[k]=t;}
    }
}
搜索更多相关主题的帖子: 不胜感激 C语言 元素 
2011-06-18 11:14
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:4 
main函数里面的语句paixu(p,10);前面加上p=a;即可。

********多贴代码,少说空话*******
2011-06-18 11:25
枯叶蝴蝶
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:48
专家分:133
注 册:2011-6-17
收藏
得分:0 
回复 2楼 ppfly
图片附件: 游客没有浏览图片的权限,请 登录注册
不行呀,编译运行后就这样了
2011-06-18 11:31
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:0 
你定义的元素是一个int型数据,你却非要输入字符,能不出错吗?而且还不打空格

********多贴代码,少说空话*******
2011-06-18 12:18
我叫小杜
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:54
专家分:105
注 册:2011-6-11
收藏
得分:4 
打断楼主一下:可以用下边这个语句吗?、
scanf("%d",p++);
p++
代表p=p+1,怎么输出呢?

坚持到底,不,轻言,放弃!
2011-06-18 16:16
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:4 
程序代码:
#include<stdio.h>
void main()
{
    void paixu(int x[],int n);
    int *p,i,a[80];
    p=a;
    for(i=0;i<5;i++)
    scanf("%d",p++);
    p=a;
    paixu(p,5);
    for(p=a,i=0;i<5;i++)
    {
        printf("%d ",*p);
        p++;
    }
}//9 8 4 10 2
void paixu(int x[],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        if(x[j]>x[k]) k=j;
        if(k!=i)
        {t=x[i];x[i]=x[k];x[k]=t;}
    }
} 
你的p用的太牛逼了

                                         
===========深入<----------------->浅出============
2011-06-18 16:42
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:4 
回复 楼主 枯叶蝴蝶
程序代码:
#include<stdio.h>


void paixu(int x[],int n);

void main(int argc,char** argv)
{
    int *p,i,a[80];
    p = a;

    for(i=0;i<10;i++)
    {
        scanf("%d",p++);
    }

    paixu(a,10);//这句出了问题了。这个应该传递a,而不应该传递p,因为这个时候p已经指向了第11个元素了
   
    p = a;   
    for(i=0;i < 10;i++)
    {
        printf("%d\t",*p);
        p++;
    }

    printf("\n");
   
    //getch();少用这个函数,这个函数的平台相关性很强,gcc里面就不支持这个函数。如果要同样的效果可以调用getchar();

    getchar();

}
void paixu(int x[],int n)
{
    int i,j,k,t;

    for(i = 0;i < n - 1;i++)
    {
        k = i;
        for(j = i + 1;j < n;j++)
         if(x[j] > x[k])
             k = j;

        if(k!=i)
        {
            t = x[i];
            x[i] = x[k];
            x[k] = t;
        }
    }

} 

南国利剑
2011-06-18 20:21
zhashuihua
Rank: 2
等 级:论坛游民
帖 子:13
专家分:11
注 册:2011-6-18
收藏
得分:4 

#include<stdio.h>
int main()
{
    void paixu(int x[],int n);
    int *p,i,a[80];
    p=a;
    for(i=0;i<10;i++)
    {
        printf("请输入第%d个数:",i+1);
    scanf("%d",p++);
    printf("\n");
    //p++;
    }
    p=a;
    paixu(p,10);
    printf("按从大到小排序好的数列是:");
    for(i=0;i<10;i++)
    {
        printf("%d ",*p++);
        //p++;
    }
    printf("\n");

    //getch();
}
void paixu(int x[],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        if(x[j]>x[k]) k=j;
        if(k!=i)
        {t=x[i];x[i]=x[k];x[k]=t;}
    }
}
2011-06-18 21:02
枯叶蝴蝶
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:48
专家分:133
注 册:2011-6-17
收藏
得分:0 
回复 5楼 我叫小杜
输出结果只是对你所输入的数,重新输出显示,不能达到预期效果。
2011-06-18 21:26
我叫小杜
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:54
专家分:105
注 册:2011-6-11
收藏
得分:0 
回复 9楼 枯叶蝴蝶
哦,了然

坚持到底,不,轻言,放弃!
2011-06-19 13:20
快速回复:求高手解决一下问题,一道C语言题目帮忙看一下问题出在哪里?不胜感激 ...
数据加载中...
 
   



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

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