高手帮忙。。。。。。。。。。。。。。
这个程序好像不起作用,没有进行比较。。。。定义函数没有生效,那位高手指点一二。
#include<stdlib.h>
#include<stdio.h>
void swap(int * ,int *);
void change(int * ,int *,int *);
int main(void)
{
int a,b,c;
printf("please input:");
scanf("%d %d %d",&a,&b,&c);
void change(int *a,int *b,int *c);
printf("按照大小排序是 %d>%d>%d\n",a,b,c);
system("PAUSE");
return 0;
}
void swap(int *q,int*p)
{
int temp;
temp=*q;
*q=*p;
*p=temp;
}
void change(int *a,int *b,int *c)
{
if(*a<*c)
{
void swap(int *q,int *p);
}
if(*a<*b)
{
void swap(int *q,int *p);
}
if(*b<*c)
{
void swap(int *q,int *p);
}
}
问题点数:8、回复次数:6Top
1 楼milozy1983(Detective)回复于 2004-12-02 18:27:37 得分 0
the way that you call functions is errorTop
2 楼T_Zone(马涛涛)回复于 2004-12-02 18:29:35 得分 0
楼上的大侠,能给详细点的信息吗?我是新手!Top
3 楼choujs(阿弥陀佛)回复于 2004-12-02 18:32:53 得分 0
你只是定义了函数原型,没有使用函数啊。例如调用 change 应该这样:
change(&a, &b, &c);Top
4 楼pikaqiu96(学无止境)回复于 2004-12-02 18:47:24 得分 8
这个程序写得好乱,错误百出~~~
看来你对指针,函数调用根本都没理解.
你的函数调用跟定义是一样的!而且该用指针时你却调用的是变量.
注意:指针指的是地址
下面是你的程序(错误的地方我给你作了更正):
#include<stdlib.h>
#include<stdio.h>
void swap(int * ,int *);
void change(int * ,int *,int *);
int main(void)
{
int a,b,c;
printf("please input:");
scanf("%d %d %d",&a,&b,&c);
void change(int *a,int *b,int *c); /*不是这么调用的,又在申明又在调用!应改为change(&a,&b,&c);因为你这里传送的是地址*/
printf("按照大小排序是 %d>%d>%d\n",a,b,c);
system("PAUSE");
return 0;
}
void swap(int *q,int*p)
{
int temp;
temp=*q;
*q=*p;
*p=temp;
}
void change(int *a,int *b,int *c)
{
if(*a<*c)
{
void swap(int *q,int *p); /*同样的错误,不知道你那儿来的q,p.改:swap(a,c);*/
}
if(*a<*b)
{
void swap(int *q,int *p);/*改:swap(a,b);*/
}
if(*b<*c)
{
void swap(int *q,int *p); /*改:swap(b,c);*/
}
}
Top
5 楼xuelong_zl(点雨点[我身上咋就没MM的香水味涅??#-_-])回复于 2004-12-02 18:50:46 得分 0
我给你改了一下,希望你能看明白
#include<stdlib.h>
#include<stdio.h>
void swap(int *q ,int *p);
void change(int *a ,int *b,int *c);
int main(void)
{
int a,b,c;
printf("please input:");
scanf("%d%d%d",&a,&b,&c);
change(&a,&b,&c);
printf("%d>%d>%d%\n",a,b,c);
system("PAUSE");
return 0;
}
void swap(int *q,int*p)
{
int temp;
temp=*q;
*q=*p;
*p=temp;
}
void change(int *a,int *b,int *c)
{
if(*a<*c)
{
swap(a,c);
}
if(*a<*b)
{
swap(a,b);
}
if(*b<*c)
{
swap(b,c);
}
}Top
6 楼sandbitch(紫川秀)回复于 2004-12-02 19:46:20 得分 0
#include<stdlib.h>
#include<stdio.h>
void swap(int * ,int *);
void change(int * ,int *,int *);
int main()
{
int a,b,c;
printf("please input:");
scanf("%d %d %d",&a,&b,&c);
change(&a,&b,&c);
printf("按照大小排序是: %d>%d>%d\n",a,b,c);
system("PAUSE");
}
void swap(int *q,int*p)
{
int temp;
temp=*q;
*q=*p;
*p=temp;
}
void change(int *a,int *b,int *c)
{
if(*a<*c)
{
swap(a,c);
}
if(*a<*b)
{
swap(a,b);
}
if(*b<*c)
{
swap(b,c);
}
}
这是我给你改的。写代码要注意规范
Top




