| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 541 人关注过本帖
标题:求助一个有关指针的问题
只看楼主 加入收藏
wwwjw
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-12-28
结帖率:33.33%
收藏
 问题点数:0 回复次数:5 
求助一个有关指针的问题
输入10个整数,将其中最小的数与第一个数交换,把最大的数与最后一个数交换。写3个函数:(1)输入10个数(2)进行处理(3)输出10个数。
main()
{
int number[10];
input(number);
max_min_value(number);
output(number);
}

input(int number[10])
{
int i;
printf("input 10 numbers:");
for(i=0;i<10;i++)
  scanf("%d ",&number[i]);
}

max_min_value(int array[10])
{
int *max,*min,*p,*array_end;
   array_end=array+10;
for(p=array+1;p<array_end;p++)
  if(*p<*min) min=p;
  else if(*p>*max) max=p;
*p=array[0];array[0]=*min;*min=*p;
*p=array[9];array[9]=*max;*max=*p;
return;
}

output(int array[10])
{
int *p;
printf("now,they are:");
for(p=array;p<=array+9;p++)
printf("%d ",*p);
getch();
}
这个程序是谭浩强那本书里面指针那一章的一个课后习题,程序代码是我看的答案并自己出入到电脑里面,为什么不行呢?
搜索更多相关主题的帖子: 指针 
2008-03-08 11:26
yxwsbobo
Rank: 5Rank: 5
等 级:职业侠客
帖 子:345
专家分:306
注 册:2007-10-29
收藏
得分:0 
少一句
max=min=array;

How are you 怎么是你?
How old are you   怎么老是你?
2008-03-08 11:31
wwwjw
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-12-28
收藏
得分:0 
哦,是掉了这么一句,可还是有点错误
当输入10个整数时,回车并不能正常运行,回车后,仍是等待输入的状态,直到你再次输入一个整数后,才可以输出结果?
???????
2008-03-08 11:43
wwwjw
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-12-28
收藏
得分:0 
截图
截的图

图片1.png (4.89 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
2008-03-08 11:44
yxwsbobo
Rank: 5Rank: 5
等 级:职业侠客
帖 子:345
专家分:306
注 册:2007-10-29
收藏
得分:0 
scanf("%d ",&number[i]);//%d后面多了一个空格

代码本身也有问题 *p=array[0]; //p已经越界了

How are you 怎么是你?
How old are you   怎么老是你?
2008-03-08 12:01
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
/*指针并不是用的越多越好,尽可能的用在处理字符串上,因数值处理起始与终止没有明显的标志.*/
/*而且容易产生难以查找的错误,所以尽量加以节制使用*/
/*调用的函数不加说明时,尽量放在主函数的前面*/
#include<stdio.h>

main()
{
    int number[10];/*={9,58,7,77,5,-4,3,2,-1,0};*/
    input(number);
    max_min_value(number);
    output(number);
}

input(int number[])
{
    int i;
    printf("input 10 numbers:");
    for(i=0;i<10;i++)
    scanf("%d",&number[i]);
}

max_min_value(int array[])
{
    int *max,*min,i,temp=0;
    max=&array[0];
    min=&array[9];
    for(i=0;i<=9;i++)
    if(array[i]<*min)
    {
        temp=array[i];
        array[i]=*min;
        *min=temp;
    }
    else if(array[i]>*max)
    {
        temp=array[i];
        array[i]=*max;
        *max=temp;
    }
    temp=array[0];array[0]=array[9];array[9]=temp;
    return;
}

output(int array[])
{
    int *p;
    printf("now,they are:");
    for(p=array;p<=array+9;p++)
    printf("%d ",*p);
    getch();
}
2008-03-08 14:18
快速回复:求助一个有关指针的问题
数据加载中...
 
   



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

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