| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 541 人关注过本帖
标题:C语言菜鸟编的程序出错,请高手帮忙!
只看楼主 加入收藏
yxyxyx
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-2-28
收藏
 问题点数:0 回复次数:8 
C语言菜鸟编的程序出错,请高手帮忙!
定义一个函数,功能是计算N个学生的一们课的成绩的最高最底分,用主函数调用他,计算50个学生的最高最底分,要求两个函数之间的数据传递完全通过形参和实参进行!
这个题目我编写的程序怎么会计算出错???请各位高手帮忙下,谢谢!
#include<stdio.h>
gd(a,n,max,min)
float a[],*max,*min;
int n;
{int i;
for(i=0;i<n;i++)
{ if(a[i]>*max) *max=a[i];
else if(a[i]<*min) *min=a[i];}
}
main()
{int n,i;
float max,min,a[100];
printf("shuru xueshen n=?");
scanf("%d",&n);
for(i=0;i<n;i++)
{printf("shuru cj=?");
scanf("%d",&a[i]); }
max=a[0]; min=a[0];
gd(a,n,&max,&min);
printf("max=%f min=%f",max,min);
getch(); }

[此贴子已经被作者于2007-3-3 14:11:00编辑过]

搜索更多相关主题的帖子: C语言 
2007-03-03 13:39
yxyxyx
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-2-28
收藏
得分:0 
各位大哥大姐,请帮帮菜鸟,急到~~~~~~~~
2007-03-03 14:37
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
收藏
得分:0 

你的那个很多方面有问题 参考我这里 自己把min写写
#define NUM 100
void max(int n,float *a);
main()
{int i,n;
float a[NUM];
printf("Input amout of students: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{ printf("Input the %d students\' grade:",i+1);
scanf("%f",&a[i]);
}
max(n,a);
getch();
}

void max(int n,float *a)
{ int i;
float max;
for(i=0;i<n;i++)
{
if( (*a) > *(a+1) )
max=*a;
else
max=*(a+1);
}
printf("The highest grade is %.1f",max);
}

2007-03-03 15:19
yxyxyx
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-2-28
收藏
得分:0 
谢谢,可题目是规定用一个函数求出两个数值(MAX,MIN)
按照你的做法要用到两个函数?

我也不知道我的想法对不对,还是你的做法本来就可以用一个函数求出两个数值,不懂的地方别见怪!
2007-03-03 15:53
be1myself
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-3-3
收藏
得分:0 
回复:(zerocn)你的那个很多方面有问题 参考我这里 ...
以下是引用zerocn在2007-3-3 15:19:03的发言:

你的那个很多方面有问题 参考我这里 自己把min写写
#define NUM 100
void max(int n,float *a);
main()
{int i,n;
float a[NUM];
printf("Input amout of students: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{ printf("Input the %d students\' grade:",i+1);
scanf("%f",&a[i]);
}
max(n,a);
getch();
}

void max(int n,float *a)
{ int i;
float max;
for(i=0;i<n;i++)
{
if( (*a) > *(a+1) )
max=*a;
else
max=*(a+1);

}
printf("The highest grade is %.1f",max);
}



红色字体部分应该是
if( (*a+i) > *(a+i+1) )
max=*(a+i);
else
max=*(a+i+1);

2007-03-03 16:05
yxyxyx
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-2-28
收藏
得分:0 
摸索出来了,
#include<stdio.h>
gd(a,n,max,min)
float a[],*max,*min;
int n;
{int i;
for(i=0;i<n;i++)
{ if(a[i]>*max) *max=a[i];
else if(a[i]<*min) *min=a[i];}
}

是红色标注的地方出错了,谢谢楼上的兄弟!
2007-03-03 16:14
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
收藏
得分:0 

void max_and_min(int n,float *a)
{ int i;
float max=*a,min=*a;
for(i=0;i<n;i++)
{
if( (*a)>max )
max=*a;
if( (*a)<min)
min=*a;
a++;

}
printf("The highest grade is %.1f\n",max);
printf("The lowness grade is %.1f",min);
}

改了下 这个就可以把max 和min 同时求出来

2007-03-03 16:31
冰天雪
Rank: 1
等 级:新手上路
威 望:1
帖 子:331
专家分:0
注 册:2007-2-27
收藏
得分:0 
楼主的调试没有通过啊~~

7楼的通过
2007-03-03 18:48
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
收藏
得分:0 

#define NUM 100
void max_and_min(int n,float *a);
main()
{int i,n;
float a[NUM];
printf("Input amout of students: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{ printf("Input the %d students\' grade:",i+1);
scanf("%f",&a[i]);
}
max_and_min(n,a);
getch();
}

void max_and_min(int n,float *a)
{ int i;
float max=*a,min=*a;
for(i=0;i<n;i++)
{
if( (*a)>max )
max=*a;
if( (*a)<min)
min=*a;
a++;

}
printf("The highest grade is %.1f\n",max);
printf("The lowness grade is %.1f",min);
}

2007-03-03 20:01
快速回复:C语言菜鸟编的程序出错,请高手帮忙!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030391 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved