[英]Passing by value a type struct to a function, Error:two or more data types in declaration of 'average'!! -
大家好,你好
我有一个小问题(或者它可能很大!),在编译时只有一个错误但是我们都知道一个错误就是阻碍进度。 基本上我是C ++的新手,并且负责编写以下代码并通过值传递函数的类型stuct参数。 但是我得到以下错误消息:“平均声明中的两个或更多数据类型”因此我的一个错误的任何解决方案将非常感激。 提前谢谢了...
enter code here
#include <iostream>
#include <cstdio>
#include <math.h>
using namespace std;
struct student{
char name[40];
int student_id;
int student_grades[3];
int average;
};
int main ()
{
extern int average(student);
student programming;
int j;
cout<<"\nPlease Enter the student name for student number: ";
cin>>programming.name;
cout<<"\nPlease Enter student i.d for student number: ";
cin>>programming.student_id;
cout<<"\nPlease Enter student grades for student number: ";
for(j=0;j<3;j++){
cout<<"\nEnter student grade no: "<<j+1<<"\n";
cin>>programming.student_grades[j];
}
programming.average=average(programming);
cout<<"\nNo. Name ID Number Average\n";
cout<<programming.name;
cout<<" "<<programming.student_id <<" ";
cout<<programming.average<<" ";
system ("PAUSE");
return 0;
}
struct student;
int void average(student programming){
int sum=0;
int ave=0;
int j;
for(j=0;j<3;j++){
sum=sum+programming.student_grades [j];
}
ave=sum/3;
return ave;
}
enter code here
int void average(student programming)
不是有效的语法。 只有一种返回类型,即它应该是int average(student programming)
。
看到了吗?
int void average(student programming){
这是连续的“两种或更多种类型”,在您说明函数返回类型的部分。 下定决心。
您的代码还有其他几个问题,主要是风格。 你不希望你的函数声明是extern
(因为它就在同一个文件中); 你希望这个声明在主要之外(它会在里面工作,但实际上没有意义); 你不需要math.h
(无论如何都是C头); 你应该使用真正的字符串类型来表示字符串; 将等级平均值存回到结构中并不是特别有用(你已经拥有它,所以只需直接使用它); 你的几个变量名称没有任何意义( programming
是一个特别明显的例子)。
您对平均功能的声明应该是:
int average(student programming)
你那里有一个额外的“空虚”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.