C++ 通过值将类型结构传递给函数,错误:在';平均值'-
大家好,我读到了 我有一个小问题(或者可能是大问题!),在编译时只有一个错误,但正如我们都知道的那样,一个错误就是阻碍进程的全部原因。 基本上我对C++是相当新的,并且已经编写了下面的代码,并将函数的类型Stutt参数传递给函数。但我收到以下错误消息: “平均值声明中有两种或两种以上的数据类型”,因此对于我的一个错误的任何解决方案都将不胜感激。 非常感谢C++ 通过值将类型结构传递给函数,错误:在';平均值'-,c++,function,struct,C++,Function,Struct,大家好,我读到了 我有一个小问题(或者可能是大问题!),在编译时只有一个错误,但正如我们都知道的那样,一个错误就是阻碍进程的全部原因。 基本上我对C++是相当新的,并且已经编写了下面的代码,并将函数的类型Stutt参数传递给函数。但我收到以下错误消息: “平均值声明中有两种或两种以上的数据类型”,因此对于我的一个错误的任何解决方案都将不胜感激。 非常感谢 enter code here #include <iostream> #include <cstdio> #inc
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
在此处输入代码
#包括
#包括
#包括
使用名称空间std;
结构学生{
字符名[40];
国际学生证;
国际学生大学成绩[3];
整数平均;
};
int main()
{
校外平均(学生);
学生编程;
int j;
coutprogramming.name;
coutprogramming.student\u id;
coutint void average(学生编程)
不是有效语法。只有一个返回类型,即它应该是int average(学生编程)
看到了吗
int void average(student programming){
这是一行中的“两个或多个类型”,在这一部分中,您可以说函数的返回类型是什么
你的代码还有其他几个问题,主要是风格上的问题。你不希望你的函数声明是extern
(因为它就在同一个文件中);你希望该声明在main之外(它可以在内部工作,但实际上没有意义);你不需要math.h
(反正是一个C头);您应该使用真正的字符串类型来表示字符串;将平均成绩存储回结构中并不是特别有用(您已经有了它,所以直接使用它);而且您的几个变量名没有任何意义(编程
是一个特别明显的例子).您的平均函数声明应为:
int average(student programming)
你有一个额外的“void”在里面。你似乎很困惑。我甚至不能告诉你在你的代码中要做什么。你应该使用std::string
而不是char
数组作为名称。“int void average()”??这是什么意思?非常感谢……这是“void”我忘了把它拿出来了。我真傻!你帮我解决了这个问题,这是你的一个好名声。是的,我会详细检查你说的话,并努力学习。非常感谢你的一个记号。你可以详细说明一下“你应该使用真正的字符串类型来表示字符串”吗?例如,
库中的std::string
类。