求解答,不懂得怎么调用函数,帮忙修改一下代码
#include<stdio.h>int main()
{
struct Student
{
char name[5];
int A;
int B;
int C;
float average;
};
struct Student stu[3];
int i;
printf("请输入学生的信息:\n");
for(i=0;i<3;i++)
{
printf("请输入第%d个学生的信息:\n",i+1);
printf("姓名:");
scanf("%s",stu[i].name);
printf("A课程成绩:");
scanf("%d",stu[i].A);
printf("B课程成绩:");
scanf("%d",stu[i].B);
printf("C课程成绩:");
scanf("%d",stu[i].C);
}
for(i=0;i<3;i++)
{
stu[i].average=(stu[i].A+stu[i].B+stu[i].C)/3.0;
printf("平均分%f",stu[i].average);
}
printf("学生成绩列表:\n");
for(i=0;i<3;i++)
{
printf("姓名:%s A课程成绩:%d B课程成绩:%d C课程成绩:%d 平均分:%f\n",stu[i].name,stu[i].A,stu[i].B,stu[i].C,stu[i].average);
}
printf("\n");
return 0;
}
对于以上的代码,我要是想用void input(Student s[], int n),void average(Student s[], int n),void print(Student s[], int n)这些函数来实现函数调用,该怎么用法,下面是我的写法,可是出错了,不知道怎么修改。
#include<stdio.h>
#define c 3
struct Student
{
char name[5];
int A;
int B;
int C;
float average;
};
struct Student stu[3];
int main()
{
void input(Student s[], int n);
void average(Student s[], int n);
void printf(Student s[], int n);
input(stu[3],3);
average( stu[3],3);
printf(stu[3],3);
return 0;
}
void input(student s[], int n)
{
int i;
printf("请输入学生的信息:\n");
for(i=0;i<c;i++)
{
printf("请输入第%d个学生的信息:\n",i+1);
printf("姓名:");
scanf("%s",stu[i].name);
printf("A课程成绩:");
scanf("%d",&stu[i].A);
printf("B课程成绩:");
scanf("%d",&stu[i].B);
printf("C课程成绩:");
scanf("%d",&stu[i].C);
}
}
void average(student s[], int n)
{
int i;
for(i=0;i<3;i++)
{
stu[i].average=(stu[i].A+stu[i].B+stu[i].C)/3.0;
}
}
void printf(student s[], int n)
{
int i;
printf("学生成绩列表:\n");
for(i=0;i<3;i++)
{
printf("姓名:%s,A课程成绩:%d,B课程成绩:%d,C课程成绩:%d,平均分:%f\n",stu[i].name,stu[i].A,stu[i].B,stu[i].C,stu[i].average);
}
}
下面是调试的结果(让我很纠结啊,不知道怎么办,各位高手帮忙修改一下。怎样实现函数调用吧):
1> 源.cpp
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(17): error C2664: “input”: 不能将参数 1 从“Student”转换为“Student []”
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(18): error C2664: “average”: 不能将参数 1 从“Student”转换为“Student []”
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(19): error C2665: “printf”: 2 个重载中没有一个可以转换所有参数类型
1> d:\window7\vc\include\stdio.h(271): 可能是“int printf(const char *,...)”[通过使用参数相关的查找找到]
1> e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(16): 或 “void printf(Student [],int)”
1> 尝试匹配参数列表“(Student, int)”时
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(23): error C2065: “student”: 未声明的标识符
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(23): error C2146: 语法错误: 缺少“)”(在标识符“s”的前面)
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(23): error C2182: “input”: 非法使用“void”类型
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(23): error C2059: 语法错误:“)”
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(24): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(24): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(40): error C2065: “student”: 未声明的标识符
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(40): error C2146: 语法错误: 缺少“)”(在标识符“s”的前面)
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(40): error C2182: “average”: 非法使用“void”类型
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(40): error C2059: 语法错误:“)”
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(41): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(41): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(48): error C2065: “student”: 未声明的标识符
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(48): error C2146: 语法错误: 缺少“)”(在标识符“s”的前面)
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(48): error C2182: “printf”: 非法使用“void”类型
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(48): error C2365: “printf”: 重定义;以前的定义是“函数”
1> d:\window7\vc\include\stdio.h(271) : 参见“printf”的声明
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(48): error C2059: 语法错误:“)”
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(49): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\users\lovecaiyun\documents\visual studio 2012\projects\consoleapplication9\consoleapplication9\源.cpp(49): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========