标题:谭浩强C语言第四版指针的第三题,我做的哪有毛病啊?
只看楼主
LTF461807914
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-1-12
 问题点数:0 回复次数:9 
谭浩强C语言第四版指针的第三题,我做的哪有毛病啊?
原题目是让输入10个整数,然后用调用函数和指针的方法找到最大值放在最后,最小值放在最前...  可是运行的时候不对啊..  各位帮帮忙看下吧~~ 谢谢啦
#include<stdio.h>
int main()
{    void scan( int num1[] , int n1);
    void find( int num2[] , int n2);
    int a[10];
    scan(a,10);
    find(a,10);
}
void scan( int num1[],int n1)
{
    int *p;
    for(p=num1;p<(num1+n1);p++)
        scanf("%d",p);   
}
void find( int num2[] , int n2)
{
    int *q,min,t,j=0,max,y;
    q=num2;
    min=*q;
    max=*q;
    for(q=num2;q<(num2+n2);q++)
    {
        if(*q<min)
            min=*q;
        if(*q>max)
            max=*q;
    }
    for(q=num2;q<(num2+j),j<n2;j++)
    {
        if(*(num2+j)==min)
        {
            t=*(num2+j);
            *(num2+j)=*num2;
            *num2=t;
        }
        if(*(num2+j)==max)
        {
            y=*(num2+j);
            *(num2+j)=*num2;
            *num2=y;
        }
    }
    for(q=num2;q<(num2+n2);q++)
        printf("%d ",*q);
        printf("\n");
}
搜索更多相关主题的帖子: void include C语言 最大值 
2013-02-09 15:42
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
得分:0 
没有出现运行错误啊。。。这个程序干啥的
顺便说一下,这种代码风格不好,乱!!建议将函数声明写在main前面,我乍一看还以为你代码写错了呢。。

[ 本帖最后由 心灯甚亮 于 2013-2-9 16:01 编辑 ]
2013-02-09 15:59
LTF461807914
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-1-12
得分:0 
回复 2楼 心灯甚亮
书上是这么要求的呀...
输入10个整数,将最小的的数与第一个对换,最大的数与最后一个对换... 并写出3个函数.输入10个数,对数处理,输出10个数...  要求用指针完成..
运行是没毛病的,但是题目里要求的东西没实现啊
2013-02-09 21:32
红糖水
Rank: 2
等 级:论坛游民
帖 子:42
专家分:11
注 册:2013-2-3
得分:0 
你的代码过于复杂了,其实10多条就够了
2013-02-10 18:50
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
得分:0 
你的代码的确是写复杂了,而且结果反了,你没发现吗?
2013-02-10 19:25
LTF461807914
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-1-12
得分:0 
回复 4楼 红糖水
原谅我吧,第一次用指针.... 要不我也不至于书上的都没弄明白额.. 可是我哪出错了?
2013-02-11 16:19
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:0 
void find( int num2[] , int n2)
{
    int *q,min,t,j=0,max,y;
    ......
    for(q=num2;q<(num2+j),j<n2;j++)
此时j等于0, q<num2+j不成立
不过逗号语句没啥影响

[ 本帖最后由 embed_xuel 于 2013-2-11 17:04 编辑 ]

总有那身价贱的人给作业贴回复完整的代码
2013-02-11 16:54
jokerskill
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:392
专家分:554
注 册:2012-3-4
得分:0 
你干嘛在main()函数里写函数原型(声两个函数)这样不好,
void scan( int num1[] , int n1);
    void find( int num2[] , int n2);
大牛一般不会这样做
2013-02-11 18:27
jokerskill
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:392
专家分:554
注 册:2012-3-4
得分:0 
新手就敢写这样大代玛,牛啊,在下抽烟了
2013-02-11 18:30
小xiong
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:388
专家分:1722
注 册:2013-2-8
得分:0 
2013-02-12 13:10



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




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

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