| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 399 人关注过本帖
标题:运行出错``- -谁能帮我看看
只看楼主 加入收藏
浩加加
Rank: 2
等 级:论坛游民
帖 子:51
专家分:14
注 册:2009-11-12
结帖率:94.12%
收藏
已结贴  问题点数:20 回复次数:4 
运行出错``- -谁能帮我看看
#include "stdio.h"
#define N 10
void prin(int *p)
{       int i;
        for(i=0;i<10;i++)
        printf("%-4d",*(p+i));
        printf("\n");
}
void get(int *num)
{   int i;
    for(i=0;i<N;i++)
        scanf("%d",(num+i));
}
void swap(int *p1,int *p2)
{      int temp;
    temp=*p1;
    *p1=*p2;
    *p2=temp;
}
main()
{
    int num[N];
    int i;
    get(num);
    for(i=1;i<N;i++)
        if(num[0]>num[i])
        swap(num[0],num[i]);
    for(i=0;i<9;i++)
        if(num[9]<num[i])
        swap(num[9],num[i]);
    prin(num);
}
搜索更多相关主题的帖子: 运行 
2010-03-07 16:33
邮贼
Rank: 2
等 级:论坛游民
帖 子:17
专家分:36
注 册:2010-3-5
收藏
得分:20 
应该是这样的,而且你的这个程序,只是把最大放在最前面,最小放在最后面!如果要求是排序的话,就很牵强咯
#include "stdio.h"
#define N 10
void prin(int *p)
{       int i;
        for(i=0;i<10;i++)
        printf("%-4d",*(p+i));
        printf("\n");
}
void get(int *num)
{   int i;
    for(i=0;i<N;i++)
        scanf("%d",(num+i));
}
void swap(int *p1,int *p2)
{      int temp;
    temp=*p1;
    *p1=*p2;
    *p2=temp;
}
main()
{
    int num[N];
    int i;
    get(num);
    for(i=1;i<N;i++)
        if(num[0]>num[i])
        swap(&num[0],&num[i]);//这儿应该取地址。
    for(i=0;i<9;i++)
        if(num[9]<num[i])
        swap(&num[9],&num[i]);
    prin(num);
}
2010-03-07 17:19
邮贼
Rank: 2
等 级:论坛游民
帖 子:17
专家分:36
注 册:2010-3-5
收藏
得分:0 
说错啦,是把最小放在最前面,最大放在最后面!
2010-03-07 17:20
hanzhenddd
Rank: 5Rank: 5
等 级:职业侠客
帖 子:90
专家分:361
注 册:2010-3-4
收藏
得分:0 
#include "stdio.h"
#define N 10
void prin(int *p)
{       int i;
        for(i=0;i<10;i++)
        printf("%-4d",*(p+i));
        printf("\n");
}
void get(int *num)
{   int i;
    for(i=0;i<N;i++)
        scanf("%d",(num+i));
}
void swap(int *p1,int *p2)
{      int temp;
    temp=*p1;
    *p1=*p2;
    *p2=temp;
}
main()
{
    int num[N];
    int i;
    get(num); 数组不初始化就调用?
    for(i=1;i<N;i++)
        if(num[0]>num[i])    for语句 该打括号 打括号啊!~ 这个写的排序排序也是错误的 自己列举几个数字就明白了。参照  冒泡 插入 选择 折半。
        swap(num[0],num[i]); swap 把值传递过去的话,num[i]中的内容是不会变的,,要传递一个地址!~
    for(i=0;i<9;i++)
        if(num[9]<num[i])
        swap(num[9],num[i]);
    prin(num);
}


[ 本帖最后由 hanzhenddd 于 2010-3-7 17:23 编辑 ]
2010-03-07 17:21
浩加加
Rank: 2
等 级:论坛游民
帖 子:51
专家分:14
注 册:2009-11-12
收藏
得分:0 
....这个不是排序``只是把小的在前```大的在后
感谢各位了

向来缘浅.奈何情深 如花美眷.似水流年
2010-03-07 17:33
快速回复:运行出错``- -谁能帮我看看
数据加载中...
 
   



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

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