C语言的问题,高手来帮帮忙啊

来源:百度知道 编辑:UC知道 时间:2024/05/25 12:09:09
#include <conio.h>

void main()
{
float a[10],*p,*p_max,*p_min,*p_f;
int i;
for(p=a;p<a+10;p++)
scanf("%f",p);
p_max=a;
p_min=a;
for(p=a;p>a+9;p++)
{if(*p<*++p)
*p_max=*p;
if(*p>*++p)
p_min=p;
}
p_f=a;
for(p=a;p>a+10;p++)
*p_f+=*p;
*p_f/10
printf("zui da zhi=%f\n",*p_max);
printf("zui xiao zhi =%f\n",*p_min);
printf("ping jun zhi =%f\n",*p_f);
getch();
}

为什么输出的结果总是不符合实际啊?
改成这样也不行啊
#include <conio.h>

void main()
{
float a[10],*p,*p_max,*p_min,*p_f;
int i;
for(p=a;p<a+10;p++)
scanf("%f",p);
for(p=a;p<a+9;p++)
{if(*p<*++p)
p_max=p;
if(*p>*++p)
p_min=p;
}
p_f=p;
for(p=a;p<a+10;p++)
*p_f+=*p;
*p_f=*p_f/10;
printf("zui da zhi=%f\n",*p_max

用指针太多了,可以改一下啦....
仅参考:
#include <conio.h>
#include<stdio.h>
void main()
{
float a[10],*p,*p_max,*p_min,*p_f,*q;
int i;
for(i=0;i<10;i++)
scanf("%f",&a[i]);
p_max=a;
p_min=a;
for(p=a,q=a+1;p<a+9;p++,q++)
{

if(*p>*q)
p_min=q;
if(*p<*q)
p_max=q;
}
printf("zui da zhi=%3.1f\n",*p_max);
printf("zui xiao zhi =%3.1f\n",*p_min);
p_f=a;
for(p=a+1;p<a+10;p++)
*p_f+=*p;
printf("ping jun zhi =%3.1f\n",*p_f/10);
getch();
}

指针当然不行
改成变量

for(p=a;p>a+9;p++)
{if(*p<*++p)
*p_max=*p;
if(*p>*++p)
p_min=p;
}
p_f=a;
for(p=a;p>a+10;p++)
*p_f+=*p;
*p_f/10

for()循环里面的大于号改成小于号