Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;如何将数组传递给函数,然后调用它来显示数组的值?_C++_Arrays_C++11 - Fatal编程技术网

C++ C++;如何将数组传递给函数,然后调用它来显示数组的值?

C++ C++;如何将数组传递给函数,然后调用它来显示数组的值?,c++,arrays,c++11,C++,Arrays,C++11,我用你给我的建议更新了代码!现在我不知道该怎么调用main中的displayinfo函数了?它说传递的参数太少了,但是当我有另一个函数传递所有数据的参数时,为什么我要传递参数呢!我不知道如何调用displayinfo来显示displayinfo的内容 #include<iostream> #include<array> #include<iomanip> #include<string> using namespace std; void set

我用你给我的建议更新了代码!现在我不知道该怎么调用main中的displayinfo函数了?它说传递的参数太少了,但是当我有另一个函数传递所有数据的参数时,为什么我要传递参数呢!我不知道如何调用displayinfo来显示displayinfo的内容

#include<iostream>
#include<array>
#include<iomanip>
#include<string>
using namespace std;

void setCourseName(string);
void InputValue();


int main()
{
    InputValue();
    displayinfo( d, b);




}

void displayinfo(int d, array<char, 7> b)
{
    for (int k = 0; k < d; k++)
    {
        cout << "Semester: " << b[k] << endl;
    }

}


void InputValue()
{
    char semester;
    string courseTitle;
    string courseType;
    int credits;
    string lettergrade;
    double gpa;

    array<char, 7> sem1array;
    array<string, 7> sem1coursetitles;
    array<string, 7> sem1courseTypes;
    array<int, 7> sem1credits;
    array<string, 7> sem1lettergrades;
    int amountOFgrades = 0;

    cout << "How many grades are going to be entered today? min 1 - max 7" << endl;
    cin >> amountOFgrades;
    for (int counter = 0; counter < amountOFgrades; counter++)
    {
        bool valid1 = false;
        bool validCredits = false;
        bool valid3 = false;
        bool valid4 = false;
        while (valid1 == false)
        {
            cout << "Enter Semester Number" << endl;
            cin >> semester;
            if (semester == '1' || semester == '2')
            {
                cout << "valid input" << endl;
                sem1array[counter] = semester;
                valid1 = true;
            }
            else
            {

                cout << "Invalid Input! RE ENTER SEMESTER NUMBER EITHER 1 OR 2!" << endl;
            }
        }
            cout << "Enter Course Title: " << endl;
            cin.ignore();
            getline(cin, courseTitle);
            if(courseTitle.size() <= 25)
                sem1coursetitles[counter] = courseTitle;
            else
            {
                cout << "Course Name Cannot Be More Than 25 Characters; Course name limited to first 25 characters!" << endl;
                courseTitle = courseTitle.substr(0, 25);
                sem1coursetitles[counter] = courseTitle;
            }

        while (valid3 == false)
        {
            cout << "Enter Course Type: Regular, AP, or Honors" << endl;

            getline(cin, courseType);
            if (courseType == "Regular" || courseType == "AP" || courseType == "Honors")
            {
                sem1courseTypes[counter] = courseType;
                valid3 = true;
            }
            else
            {
                cout << "Invalid Input! RE ENTER COURSE TYPE EXACTLY HOW IT APPEARS EITHER Regular, AP, or Honors!" << endl;
            }
        }
        while(validCredits == false)
        {
            cout << "Enter Credits Earned For Course: **Can Either Be 1-4 Credits**" << endl;
            cin >> credits;
            if (credits == 1 || credits == 2 || credits == 3 || credits == 4)
            {
                sem1credits[counter] = credits;
                validCredits = true;
            }
            else
            {
                cout << "Invalid Output! Must Enter Number 1-4 For Credits Earned!" << endl;
            }
        }
        while (valid4 == false)
        {
            cout << "Enter Letter Grade; Capital Letter Followed By A Plus + or Minus - If There Is One!Example: A+, A-, A, B+..." << endl;
            cin.ignore();
            getline(cin, lettergrade);
            if (lettergrade == "A+")
            {
                gpa = 4.0;
                sem1lettergrades[counter] = lettergrade;
                valid4 = true;
            }
            else if (lettergrade == "A")
            {
                gpa = 4.0;
                sem1lettergrades[counter] = lettergrade;
                valid4 = true;
            }
            else if (lettergrade == "A-")
            {
                gpa = 3.7;
                sem1lettergrades[counter] = lettergrade;
                valid4 = true;
            }
            else if (lettergrade == "B+")
            {
                gpa = 3.3;
                sem1lettergrades[counter] = lettergrade;
                valid4 = true;
            }
            else if (lettergrade == "B")
            {
                gpa = 3.0;
                sem1lettergrades[counter] = lettergrade;
                valid4 = true;
            }
            else if (lettergrade == "B-")
            {
                gpa = 2.7;
                sem1lettergrades[counter] = lettergrade;
                valid4 = true;
            }
            else if (lettergrade == "C+")
            {
                gpa = 2.3;
                sem1lettergrades[counter] = lettergrade;
                valid4 = true;
            }
            else if (lettergrade == "C")
            {
                gpa = 2.0;
                sem1lettergrades[counter] = lettergrade;
                valid4 = true;
            }
            else if (lettergrade == "C-")
            {
                gpa = 1.7;
                sem1lettergrades[counter] = lettergrade;
                valid4 = true;
            }
            else if (lettergrade == "D+")
            {
                gpa = 1.3;
                sem1lettergrades[counter] = lettergrade;
                valid4 = true;
            }
            else if (lettergrade == "D")
            {
                gpa = 1.0;
                sem1lettergrades[counter] = lettergrade;
                valid4 = true;
            }
            else if (lettergrade == "F")
            {
                gpa = 0.0;
                sem1lettergrades[counter] = lettergrade;
                valid4 = true;
            }

            else
            {
                cout << "Invalid Input! Please Re-Enter Letter Grade! Example: A+, A-, A, B+..." << endl;
            }
        }
    }
    displayinfo(amountOFgrades, sem1array);


}
#包括
#包括
#包括
#包括
使用名称空间std;
void setCourseName(字符串);
void InputValue();
int main()
{
InputValue();
显示信息(d,b);
}
无效显示信息(整数d,数组b)
{
对于(int k=0;kcout返回和传递数组非常简单。这是一个非常简化的版本

#包括
#包括
std::数组输入_值()
{
std::数组数据;
//填充数组
返回数据;
}
无效显示数组(std::数组数据)
{
for(int x:data)

std::cout在函数使用displayinfo之后声明displayinfo,这意味着函数将找不到它

您应该将“displayinfo”的代码放在文件的前面,或者在文件的开头声明它的头(我建议这样做)。我建议对InputValue也这样做:

void InputValue();
void displayinfo(char b[]);
现在,您的函数中存在许多问题:

/*you're using two parameters of type : array<char,7> and array<string,7>*/
void displayinfo(char b[])
{
    for (int k = 0; k < sem1array/*supposed to "b"*/.size(); k++)
    {
        /*once again you called "sem1array" "b" in this scope*/
        /*"sem1coursetitles" should be the second paramater*/
        cout << "Semester: " << sem1array[k] << "           " << "Course: " << sem1coursetitles[k] << endl;

    } 
}

关于main中的调用,您没有为函数提供任何参数,因此它无法工作。

数组是funvtion InputValue的局部变量。它们不能在main中访问。您应该重新设计程序。数组可以在main中定义,并作为其他函数的参数使用。
void displayinfo(常量数组&a)
?@Tristan Roman像
InputValue
声明一样,在调用函数之前必须声明
displayinfo
函数。连续两天问同一个问题不是这样做的。请阅读部分,然后创建一个。我们会帮助您。正确的格式也很好。我仍然不知道如何调用displayinfo()main()中的函数?就像我想显示它的内容一样,我不想向它传递任何其他参数…谢谢你帮了我很多忙,但是我应该如何调用这个函数来显示内容,或者让displayinfo做它应该做的事情,因为我已经从另一个函数向它传递了参数。不客气!我建议创建在main中创建数组。然后将它们作为引用传递给函数。编辑:我指的是填充数组的函数。这样,数组位于main中,因此可以将它们传递给显示它们的函数。抱歉,我没有太多时间,所以我可能不太清楚:x
/*you're using two parameters of type : array<char,7> and array<string,7>*/
void displayinfo(char b[])
{
    for (int k = 0; k < sem1array/*supposed to "b"*/.size(); k++)
    {
        /*once again you called "sem1array" "b" in this scope*/
        /*"sem1coursetitles" should be the second paramater*/
        cout << "Semester: " << sem1array[k] << "           " << "Course: " << sem1coursetitles[k] << endl;

    } 
}
void displayinfo(array<char,7> b, array<string,7> c)
{
    for (int k = 0; k < b.size(); k++)
    {
        cout << "Semester: " << b[k] << "\tCourse: " << c[k] << endl;
    }
}
displayinfo(sem1array,sem1coursetitles);