鱼C论坛

 找回密码
 立即注册
查看: 2227|回复: 5

求高手指点,指针如何修改

[复制链接]
发表于 2011-11-10 10:27:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
int max,min;
int m(int x[])
{
        int *p;
        max=min=*a;
        for(p=a+1;p<a+10;p++)
        {
                if(*p>max)max=*p;
                else if(*p<min)min=*p;
        }
        return max,min;
       
}
void main()
{
        int x[10],i;
        printf("please input ten integer numbers\n:");
        for(i=0;i<10;i++)
        {
                scanf("%d",&a[i]);
        }
        m(a[10])
        printf("max=%d\nmin=%d\n",max,min);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-10 11:18:26 | 显示全部楼层
程序有点乱呐...
首先,函数m()和主函数里的变量a都没有定义;
其次,调用m()时,传入的参数错误应传入指针如m(x);
还有,m()函数用return只能返回一个值,你上面的写法只能返回min,况且min,max是全局变量无需返回
语法有待加强啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-11-10 12:35:59 | 显示全部楼层
先谢谢了,不好意思,我是初学者,我改了下程序,但是输出max,min是乱码
#include<stdio.h>
int max,min;
int m(int x[],int n)
{
        int *p;
        max=min=*x;
        for(p=x+1;p<x+10;p++)
        {
                if(*p>max)max=*p;
                else if(*p<min)min=*p;
        }
        return;
        
}
void main()
{
        int a[10],i;
        printf("please input ten integer numbers\n:");
        for(i=0;i<10;i++)
        {
                scanf("%d",&a[i]);
        }
        m(a[10],10);
        printf("max=%d\nmin=%d\n",max,min);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-10 13:20:08 | 显示全部楼层
本帖最后由 cqy55555 于 2011-11-10 13:21 编辑

函数m(int x[],int n),第一个参数是传的是地址啊。。。。
调用应该是m(a,10),看下书a[10]和a还有&a分别代表神马意思。
函数没有返回值就不要用return啦,函数类型改为void
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-11-10 17:55:09 | 显示全部楼层
程序正确运行了,灰常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-10 22:20:26 | 显示全部楼层
  1. #include<stdio.h>
  2. int max,min;
  3. void m(int *x)
  4. {
  5.         int *p;
  6.         max=min=*x;
  7.         for(p=x+0;p<x+10;p++)
  8.         {
  9.                 if(*p>max)max=*p;
  10.                 else if(*p<min)min=*p;
  11.         }
  12.         
  13. }
  14. void main()
  15. {
  16.         int a[10],i;
  17.         printf("please input ten integer numbers\n:");
  18.         for(i=0;i<10;i++)
  19.         {
  20.                 scanf("%d",&a[i]);
  21.         }
  22.        m(a);
  23.        printf("max=%d\nmin=%d\n",max,min);
  24. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 14:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表