当前位置: 代码迷 >> C语言 >> 指针问题求助
  详细解决方案

指针问题求助

热度:275   发布时间:2007-05-21 14:00:00.0
指针问题求助

#include "stdio.h"
#include "math.h"
main()
{
int a[3];
int i,m;
int *p=a;
printf("\nInput the array:");
for(i=0;i<3;i++)
{
scanf("%d",&a[i]);
}
if(max<*(p+1))
max=*(p+1);
if(max<*(p+2))
max=*(p+2);
printf("\nThe max is %d",max);

}

目的输出最大值..运行结果有错,输出的数字和我输入的数字不符


----------------解决方案--------------------------------------------------------

不懂你MAX的函数是什么,我没有这个函数库里
#include "stdio.h"
#include "math.h"
main()
{
int a[3];
int i,m,max;
int *p=a;
printf("\nInput the array:");
for(i=0;i<3;i++)
{
scanf("%d",&a[i]);
}
max=*p;
if(max<*(p+1))
max=*(p+1);
if(max<*(p+2))
max=*(p+2);
printf("\nThe max is %d",max);

}


----------------解决方案--------------------------------------------------------

#include "stdio.h"
void main()
{
int a[3],max=0;
int i,t;
int *p=a;
printf("\nInput the array:");
for(i=0;i<3;i++)
{
scanf("%d",&a[i]);
}

for (p=a;p<a+3;p++)
if(max<*p) max=*p;

printf("\nThe max is %d",max);

}

这样做就行了;
#include "stdio.h"
#include "math.h"
main()
{
int a[3];
int i,m;
int *p=a;
printf("\nInput the array:");
for(i=0;i<3;i++)
{
scanf("%d",&a[i]);
}
if(max<*(p+1))
max=*(p+1);
if(max<*(p+2))
max=*(p+2);
printf("\nThe max is %d",max);

}

你的程序有些问题,头文件#include<math.h>不需要,还有maxmei没有定义,if语句有问题,当执行完第一IF语句,假如符合第一个条件,其就不往下执行了,就得不出MAX了


----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{int a[3],max,i;
int *p=a;
for(i=0;i<3;i++)
scanf("%d",&a[i]);
max=a[i];
for(i=0;i<3;i++)
{if(max<*p)
max=*p;
p++;
}
printf("max=%d\n",max);
getch();
}
哈哈,这个很简单啊。说实话,用c 语言做一些题目很简单的。
但到现在还是没有弄懂c 语言到底在工作中还没有用
----------------解决方案--------------------------------------------------------

谢谢!!to:gyhqiang123,你最后说的不对"当执行完第一IF语句,假如符合第一个条件,其就不往下执行了"
第一个符合,还会继续判断下面语句的..没个if只管到他分号处/


----------------解决方案--------------------------------------------------------

我支持2楼的,

不懂你MAX的函数是什么,我没有这个函数库里
#include "stdio.h"
#include "math.h"
main()
{
int i,max,a[3];
int *p=a;
printf("\nInput the array:");
for(i=0;i<3;i++)
{
scanf("%d",&a[i]);
}
max=*p;
if(max<*(p+1))
max=*(p+1);
if(max<*(p+2))
max=*(p+2);
printf("\nThe max is %d",max);

}



----------------解决方案--------------------------------------------------------

#include "stdio.h"
#include "math.h" -----无用
main()
{
int a[3];
int i,m;
int *p=a;
printf("\nInput the array:");
for(i=0;i<3;i++)
{
scanf("%d",&a[i]);
}
if(max<*(p+1)) --------max未定义,此处显然是一个变量,不是函数.另外比较前应把数组a
max=*(p+1); 任意值赋给它.
if(max<*(p+2))
max=*(p+2);
printf("\nThe max is %d",max);

}

改动后:
#include "stdio.h"
main()
{
int a[3],max;
int i,m;
int *p=a;
printf("\nInput the array:");
for(i=0;i<3;i++)
{
scanf("%d",&a[i]);
}
max=a[0];
if(max<*(p+1))
max=*(p+1);
if(max<*(p+2))
max=*(p+2);
printf("\nThe max is %d",max);

}


----------------解决方案--------------------------------------------------------
  相关解决方案