回 帖 发 新 帖 刷新版面

主题:使用指针交两个数的值!!!

请,高手指点迷金啊

回复列表 (共9个回复)

沙发

好像是这样的:

void exch(int *m,int *n)
{
int *tmp;
tmp=m;m=n;n=tmp;
}

板凳

不行啊,怎么办

3 楼

贴上你的程序,ok ?

4 楼

我不会啊

5 楼

#include<stdio.h>
void main()
{
    int i,max,min,num[5];
    printf("请输入五个数:\n");
    for(i=0;i<5;i++)
        scanf("%d",&num[i]);
    max=min=num[0];
    for(i=0;i<5;i++)
    {
        if(max<num[i])
            max=num[i];
        if(min>num[i])
            min=num[i];
    }
    printf("\n最大值是:%d",max);
    printf("\n最小值是:%d\n",min);
}

这里的max=min=num[0];是什么意思??

6 楼

max=min=num[0]; //给max,min赋初值

不知道着程序跟“使用指针交两个数的值!!!”有什么关系。。。?

ps:要养成良好的习惯:
int main(int argc,char *argv[])
{
  ... ...
  return 0;
}

7 楼

[quote]好像是这样的:
void exch(int *m,int *n)
{
int *tmp;
tmp=m;m=n;n=tmp;
}[/quote]
明显错误。。。。。。
应该是
void exch(int *m, int *n)
{
    int tmp;
    tmp=*m;*m=*n;*n=tmp;
}

8 楼

[quote][quote]好像是这样的:
void exch(int *m,int *n)
{
int *tmp;
tmp=m;m=n;n=tmp;
}[/quote]
明显错误。。。。。。
应该是
void exch(int *m, int *n)
{
    int tmp;
    tmp=*m;*m=*n;*n=tmp;
}[/quote]
我错了!! 画画图看看确实是错了,真的错了!!!罪过~~  谢过指正!!

ps:
    C语言中实参变量和形参变量之间的数据传递是单向的“值传递”;指针变量作为函数参数也要遵循这一原则; 调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值!!

9 楼

[quote]我错了!!画画图看看确实是错了,真的错了!!!罪过~~  谢过指正!!
[/quote]
画画图。。。。。。。。。。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册