繁体   English   中英

将值类型结构传递给函数,错误:声明“average”中的两个或更多数据类型!! -

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM