标题:求解答,不懂得怎么调用函数,帮忙修改一下代码
只看楼主
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
得分:0 
回复 9楼 daniel_
呵呵,谢谢指点。
我不是要把子函数声明放到主函数里,我只是说把子函数声明放在主函数里编译器不报错,但这毕竟不是好习惯,以后注意。
  


楼主那样写形参我试了下,结果是 。。不行,编译通不过

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-14 11:06
切换浏览模式
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2012-12-8
得分:0 
二楼的不错,但应该是    void print(STU s[])才好吧
2012-12-14 11:22
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
得分:0 
回复 12楼 切换浏览模式
对对
这个我还真没有注意到
printf这个函数名字

建议楼主在打印的时候定义函数名为display等
2012-12-14 11:49
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
得分:0 
但题目就是要用到void print(Student s[], int n),void average(Student s[], int n),void input(Student s[], int n)
//对input()、average()、print()三个函数进行声明
//调用input()、average()、print()三个函数
我实在搞不懂为什么还要在自定义函数input()、average()、print()加入形参Student s[], int n,但是加入了形参后,我真的不知道怎么调用了

思考赐予新生,时间在于定义
2012-12-14 12:48
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
得分:0 
回复 14楼 love云彩
这个N是指定了结构体数组的大小的吧?

我看下修改一下先
2012-12-14 13:04
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
得分:0 
#include<stdio.h>

#define MAXNUM 128

typedef struct Student
{
    char name[5];
    float A;
    float B;
    float C;
    float average;
}STU;

void input(STU s[],int n);
void average(STU s[],int n);
void printf(STU s[],int n);

int main()
{
    int n =0;
    STU stu[3];
    printf("please input a number:\n");
    scanf("%d",&n);
    input(stu,n);
    average(stu,n);
    printf(stu,n);
   
return 0;
}

void input(STU stu[],int n)
{
    int i = 0;
    printf("请输入学生的信息:\n");
   for(i = 0;i < n;i++)
   {
        printf("请输入第%d个学生的信息:\n",i+1);
        printf("姓名:");
        scanf("%s",&stu[i].name);
        printf("A课程成绩:");
        scanf("%f",&stu[i].A);
        printf("B课程成绩:");
        scanf("%f",&stu[i].B);
        printf("C课程成绩:");
        scanf("%f",&stu[i].C);
    }
}

void average(STU stu[],int n)
{
   int i = 0;
   for(i=0;i<n;i++)
  {
    stu[i].average=(stu[i].A+stu[i].B+stu[i].C)/n;
  }
}

void printf(STU stu[],int n)
{
   int i = 0;
   printf("学生成绩列表:\n");
  for(i = 0;i < n;i++)
 {
    printf("姓名:%s\tA课程成绩:%3f\tB课程成绩:%3f\tC课程成绩:%3f\t平均分:%4f\n",stu[i].name,stu[i].A,stu[i].B,stu[i].C,stu[i].average);
 }
}
----------------
修改了一下,第二个参数n,是结构体数组的大小
你看下
2012-12-14 13:10
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
呵呵,连那个参数是干什么的都不知道,晕呐。

授人以渔,不授人以鱼。
2012-12-14 13:12
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
得分:0 
要不,楼主 你把你的题目要求 贴上来
2012-12-14 13:13
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
得分:0 
#include<stdio.h>

#define MAXNUM 128

typedef struct Student
{
    char name[5];
    float A;
    float B;
    float C;
    float average;
}STU;

void input(STU s[],int n);
void average(STU s[],int n);
void print(STU s[],int n);

int main()
{
    int n =0;
    STU stu[MAXNUM];//刚刚这里忘了修改
    printf("please input a number:\n");
    scanf("%d",&n);
    input(stu,n);
    average(stu,n);
    print(stu,n);
   
return 0;
}

void input(STU stu[],int n)
{
    int i = 0;
    printf("请输入学生的信息:\n");
   for(i = 0;i < n;i++)
   {
        printf("请输入第%d个学生的信息:\n",i+1);
        printf("姓名:");
        scanf("%s",&stu[i].name);
        printf("A课程成绩:");
        scanf("%f",&stu[i].A);
        printf("B课程成绩:");
        scanf("%f",&stu[i].B);
        printf("C课程成绩:");
        scanf("%f",&stu[i].C);
    }
}

void average(STU stu[],int n)
{
   int i = 0;
   for(i=0;i<n;i++)
  {
    stu[i].average=(stu[i].A+stu[i].B+stu[i].C)/n;
  }
}

void print(STU stu[],int n)
{
   int i = 0;
   printf("学生成绩列表:\n");
  for(i = 0;i < n;i++)
 {
    printf("姓名:%s\tA课程成绩:%3f\tB课程成绩:%3f\tC课程成绩:%3f\t平均分:%4f\n",stu[i].name,stu[i].A,stu[i].B,stu[i].C,stu[i].average);
 }
}
2012-12-14 13:24
掌心立雪
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-12-14
得分:0 
在codeblocks里运行的时候,楼主的原先的程序到输入A成绩的时候就没法运行了,加上&之后就行了,这是为什么啊codeblocks的运行环境和VC的一样吗

[ 本帖最后由 掌心立雪 于 2012-12-14 13:45 编辑 ]
2012-12-14 13:44



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




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

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