标题:[求助]一个指针的习题
只看楼主
wshyj18
Rank: 1
等 级:新手上路
帖 子:124
专家分:0
注 册:2007-5-14
 问题点数:0 回复次数:14 
[求助]一个指针的习题

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后的一个数对换,编写三个函数,(1)输出10个数(2)进行处理(3)输出10个数
请问那里出错了
#include<stdio.h>
void main()
{
void input(int *);
void change(int *);
void output(int *);
int number[10];
input(number);
change(number);
output(number);

}
void input(int number)
{
int i;
printf("input 10 numbers:" );
for(i=0;i<10;i++)
scanf("%d",&number[i]);
}
void change(int number)
{
int *p,*max,*min,temp;
max=min=number;
for(p=number+1;p<number+10;p++)
if(*p>*max)
max=p;
else
if(*p<*min)
min=p;
temp=*number[0];number[0]=*min;*min=temp;
temp=*number[9];number[9]=*max;*max=temp;

}
void output(int number)
{
int *p;
printf("now number is:");
for(p=number;p<munber+10;p++)
printf("%d",*p);
printf("\n");
}

搜索更多相关主题的帖子: void 习题 int 指针 number 
2007-06-12 12:43
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
得分:0 
#include<stdio.h>
void main()
{
void input(int *);
void change(int *);
void output(int *);
int number[10];
input(number);
change(number);
output(number);

}
void input(int number[])
{
int i;
printf("input 10 numbers:" );
for(i=0;i<10;i++)
scanf("%d",&number[i]);
}
void change(int number[])
{
int *p,*max,*min,temp;
max=min=number;
for(p=number+1;p<number+10;p++)
if(*p>*max)
max=p;
else
if(*p<*min)
min=p;
temp=number[0];number[0]=*min;*min=temp;
temp=number[9];number[9]=*max;*max=temp;

}
void output(int number[])
{
int *p;
printf("now number is:");
for(p=number;p<number+10;p++)
printf("%d",*p);
printf("\n");
}
对指针的使用理解好,不加[],(或者用*),则函数运算后没有效果,空间释放了,没有对主调函数发生作用。


偶是菜鸟鸟偶惧WHO?!!!!
2007-06-12 12:57
三笔
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-6-12
得分:0 
看着眼晕!!2楼正解!
2007-06-12 20:53
wshyj18
Rank: 1
等 级:新手上路
帖 子:124
专家分:0
注 册:2007-5-14
得分:0 
多谢二楼的仁兄.这让我知道[]与*的用法

2007-06-13 12:00
qq451746466
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-6-13
得分:0 
学习勒!~

2007-06-14 12:27
lucis009
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-5-2
得分:0 
数组名是一个地址常量来的

你想用实参传址就把形参改为指针
2007-06-14 15:20
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
得分:0 

void input(int number)




void change(int number)


这2句应该没错吧``

数组名做参数时```就是数组的头地址啊```



女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-06-14 16:00
herbert_1987
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:1314
专家分:0
注 册:2007-5-13
得分:0 
以下是引用死了都要C在2007-6-14 16:00:28的发言:

void input(int number)




void change(int number)


这2句应该没错吧``

数组名做参数时```就是数组的头地址啊```


这两个函数的参数岂不变成了整形变量?


人生重要的不是所站的位置,而是所朝的方向
2007-06-14 18:06
twsgl
Rank: 1
等 级:新手上路
帖 子:136
专家分:5
注 册:2007-6-15
得分:0 

我同意上面的观点

2007-06-19 06:38
twsgl
Rank: 1
等 级:新手上路
帖 子:136
专家分:5
注 册:2007-6-15
得分:0 
#include<stdio.h>
void main()
{
void input(int *);
void change(int *);
void output(int *);
int number[10];
input(number);
change(number);
output(number);

}
void input(int number[])
{
int i;
printf("input 10 numbers:" );
for(i=0;i<10;i++)
scanf("%d",&number[i]);
}
void change(int number[])
{
int *p,*max,*min,temp;
max=min=number;
for(p=number+1;p<number+10;p++)
if(*p>*max)
max=p;
else
if(*p<*min)
min=p;
temp=number[0];number[0]=*min;*min=temp;
temp=number[9];number[9]=*max;*max=temp;

}
void output(int number[])
{
int *p;
printf("now number is:");
for(p=number;p<number+10;p++)
printf("%d",*p);
printf("\n");
}

2007-06-19 11:53



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




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

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