| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 800 人关注过本帖
标题:C语言 指针 求助
只看楼主 加入收藏
cherish123
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-11-14
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
C语言 指针 求助
语法好像没错误,就是执行的时候有错误,我感觉是
void max_min_value(int*p)错误,但目前找不到,求助!!



题目:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:(1)输入10个数;(2)进行处理(3)输出10个数。
    主函数如下
    main(){
    int number[10];
    input(number);
    max_min_value(number);
    output(number);
    }
    【要求】利用指针变量作函数参数




#include<stdio.h>

void input(int *p)
{
    int i,a[10];
    p=a;

    printf("请输入十个整数\n");

    for(i=0;i<10;i++,p++)
    scanf("%d",p);
    //p++ p移一位

}

void max_min_value(int*p)
{
    int i,min,max,m,n;
    min=0;
    max=0;

    for(i=0;i<10;i++)
    {if(p[i]<min)
     min=p[i];}

     m=p[0];
     p[0]=p[i];
     p[i]=m;

     for(i=0;i<10;i++)
     {if(p[i]>max)
     max=p[i];}
     n=p[9];
     p[9]=p[i];
     p[i]=n;

}

void output(int*p)
{
    int i;
    for(i=0;i<10;i++,++p)
    printf("%d  ",*p);
}
int main()
{
    int number[10];
    input(number);
    max_min_value(number);
    output(number);

    return 0;
}
搜索更多相关主题的帖子: include number C语言 最大的 
2011-11-14 17:21
wuyunxong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:43
专家分:148
注 册:2011-10-26
收藏
得分:5 
循环结束后,再用p[i]访问数组,会越界吧?!
2011-11-14 18:14
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:5 
是void max_min_value(int*p)有问题
改成
程序代码:
void max_min_value(int*p)
{
    int i,min,max,m,n,j,k;
    min=0;
    max=0;

    for(i=0;i<10;i++)
    {if(p[i]<min)
     min=p[i];j=i;}

     m=p[0];
     p[0]=p[j];
     p[j]=m;

     for(i=0;i<10;i++)
     {if(p[i]>max)
     max=p[i];,k=i;}
     n=p[9];
     p[9]=p[k];
     p[k]=n;

}

只有这样,才能是最小的数和第一个交换,最大的数和最后一个交换,不然,向你那样交换的话,是最小的和最大的都和p[10]交换了
2011-11-14 18:16
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:5 
input函数有问题,既然你已经把number的地址传过去了,不用再定义一个数组a,把数组把a赋值给p后是吧数组存进a中,然后当函数返回,系统回收掉数组a的内存,就会出现乱码现象,你后面的函数也不可能正常运作。

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-11-14 20:00
xinyapeng011
Rank: 2
等 级:论坛游民
帖 子:25
专家分:12
注 册:2011-9-19
收藏
得分:5 



要结果:
    用冒泡升序只要你第一数最小最后一位最大
2011-11-15 16:51
cherish123
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-11-14
收藏
得分:0 
回复 楼主 cherish123
对的,谢谢
2011-11-16 17:51
快速回复:C语言 指针 求助
数据加载中...
 
   



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

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