标题:帮改下程序谢谢了
只看楼主
fdjlglt
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-9-14
 问题点数:0 回复次数:9 
帮改下程序谢谢了
float average(float array[10])
{int i;
float aver,sum=array[0];
for(i=1;i<10;i++)
   sum=sum+array[i];
aver=sum/10;
return(aver);
}
main()
{ float score[10],aver;
int i;
printf("intput n score[i]:\n");
for(i=0;i<10;i++)
scanf("%f",&score[i]);
printf("\n");
aver=average(score);
printf("average score is%5.2f",aver);
getch();
}
如果输入N个学生
那应该怎样改。???i

[[italic] 本帖最后由 fdjlglt 于 2007-12-3 17:18 编辑 [/italic]]
搜索更多相关主题的帖子: average 
2007-12-03 16:39
漫游者李李西
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2007-11-11
得分:0 
定义一个结构体就可以了。

2007-12-03 16:44
fdjlglt
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-9-14
得分:0 
回复 2# 的帖子
可以帮写下吗?

2007-12-03 16:49
kelifei
Rank: 1
来 自:UESTC
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-5-11
得分:0 
float average(float array[10])
{int i;
float aver,sum=array[0];
for(i=1;i<10;i++)
   sum=sum+array[i];
aver=sum/10;
return(aver);
}
main()
{ float score[10],aver;
int i,N;
scanf("%f",N);
printf("intput N score[i]:\n",%d);
for(i=0;i<N;i++)
scanf("%f",&score[i]);
printf("\n");
aver=average(score);
printf("average score is%5.2f",aver);
getch();
}

-DFAE -DESS -DDVD -DMTK  -DDVR -DDECODE -DMSTAR -DPMP我决定在论坛潜水3年又3年!
2007-12-03 18:19
kelifei
Rank: 1
来 自:UESTC
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-5-11
得分:0 
float average(float array[int j])
{int i;
float aver,sum=array[0];
for(i=1;i<j;i++)
   sum=sum+array[i];
aver=sum/j;
return(aver);
}
main()
{
float score[],aver;
int i,N;
scanf("%f",N);
printf("intput N score[i]:\n",%d);
for(i=0;i<N;i++)
scanf("%f",&score[i]);
printf("\n");
aver=average(score[N]);
printf("average score is%5.2f",aver);
getch();
}

[[italic] 本帖最后由 kelifei 于 2007-12-3 18:26 编辑 [/italic]]

-DFAE -DESS -DDVD -DMTK  -DDVR -DDECODE -DMSTAR -DPMP我决定在论坛潜水3年又3年!
2007-12-03 18:24
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
得分:0 
楼上代码的错误:
float average(float array[int j])   /* 这是什么东西! */
float average(float * array, int j);

float score[],aver;       /* 这将被处理为 float * score; */


//----------------------------------------------------

C99 支持变长数组,但也不是这样的。

int n;
float ar[n];    /*  变长数组 */
scanf(%d", &n);

[[italic] 本帖最后由 cosdos 于 2007-12-3 18:36 编辑 [/italic]]

—>〉Sun〈<—
2007-12-03 18:27
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
得分:0 
/* 一个好的示例程序可以帮助学习 */
/* 程序使用 malloc() 为数组分配内存 */
/* 加入了数据验证                      */


#include <stdio.h>
#include <stdlib.h>
float average(float * array, int n);       /* 函数原型 */
int main(void)
{
    float * score, aver;
    int i, n;
   
    printf("有几个学生: ");
    while(scanf("%d", &n) != 1 || n < 0)   /* 保证输入的是正整数 */
    {
        while(getchar() != '\n');
        printf("请正确输入学生数量: ");
    }
    while(getchar() != '\n');
    score = (float *)malloc(sizeof(float) * n);   /* 分配内存 */
   
    if(n > 0 && score == NULL)
    {
        fputs("无法分配内存!", stderr);
        exit(1);
    }
    for(i = 0; i < n; i++)
    {
        printf("第%d学生: ", i + 1);
        if(scanf("%f", &score[i]) != 1)         /* 输入非数字可以退出循环 */
        {
            while(getchar() != '\n');
            break;
        }
        while(getchar() != '\n');
    }
    if(i > 0)
    {
        aver = average(score, i);
        printf("\n共%d个学生,平均分: %.2f\n", i, aver);
    }
    else
        puts("\n没有学生!");
   
    if(n > 0)
        free(score);   /* 一定要记得,释放 malloc() 分配内存喔! */
        
    getchar();
    return 0;
}

float average(float * array, int n)
{
    int i;
    float sum;
    if(n <= 0)
        return 0.0;
    for(i = sum = 0; i < n; i++)
        sum += array[i];
    return (sum / n);
}

[[italic] 本帖最后由 cosdos 于 2007-12-3 19:25 编辑 [/italic]]

—>〉Sun〈<—
2007-12-03 19:14
fdjlglt
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-9-14
得分:0 
多谢楼上的楼上的帮忙
。。。。。。。

不过太长了。。。

[[italic] 本帖最后由 fdjlglt 于 2007-12-3 20:05 编辑 [/italic]]

2007-12-03 19:53
fdjlglt
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-9-14
得分:0 
回复 7# 的帖子
问个问题
float average(float * array, int j);
带个"*"是什么
怎么理解。。
???

2007-12-03 19:58
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
得分:0 
原帖由 [bold][underline]fdjlglt[/underline][/bold] 于 2007-12-3 19:58 发表 [url=http://bbs.][/url]
问个问题
float average(float * array, int j);
带个"*"是什么
怎么理解。。
???


我的代码不长,因为加入了数据验证才长的,其实语句都没技术含量的。


float * array  就是指针
float average(float array[], int j);  
作为函数参数是  float array[] 等同于 float * array。
在过去 float array[] 是不允许的。

float ar[3];   // ar 就是数组首元素的地址。
float p[];     // p 是 float 的指针,以前这是不允许的

float ar1[] = {0.1, 0.2};  不同于 float p[];

—>〉Sun〈<—
2007-12-03 21:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-190099-1-1.html




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

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