gpt4 book ai didi

c++ - 我的 for 循环第一次接受输入但第二次不正确,并显示第二次输入的输出。我不明白为什么会这样。

转载 作者:行者123 更新时间:2023-11-28 06:05:19 25 4
gpt4 key购买 nike

我只是声明结构数组并通过函数获取输入和显示输出。我的结构名称为 studentType,并想制作一个该结构的数组。我让 for 循环运行 3 次,但它只运行 2 次输入,然后显示结果,并在输出函数中显示我在第二次迭代中的第一个输入

#include<iostream>
#include<conio.h>
using namespace std;

void input();//prototype of input function
void print();
struct studentType{
char firstName[10];
char lastName[10];
char courseGrade;
double GPA;
};

int main()
{
studentType obj[3];
input();
print();

getch();
return 0;
}

void input() //taking input
{
studentType obj[3];

for(int i=0; i<3 ; i++)
{
cout<<"No."<<i<<" Enter Your First Name ?" ; cin.getline(obj[i].firstName,10); cout<<"\n";

cout<<"No."<<i<<" Enter Your last Name ?"; cin.getline(obj[i].lastName,10); cout<<"\n";

cout<<"No."<<i<<" Enter Your Course Grade ?"; cin>>obj[i].courseGrade; cout<<"\n";

cout<<"No."<<i<<" Enter Your GPA ?"; cin>>obj[i].GPA; cout<<"\n";
}
}

void print( )//showing results or printing
{
studentType obj[3]; //array obj its a struct type
for(int i=0; i<3 ; i++)
{
cout<<"No."<<i<<" Your First Name" <<obj[i].firstName<<endl;

cout<<"No."<<i<<"last Name " <<obj[i].lastName<<endl;

cout<<"No."<<i<<"Your Course Grade " <<obj[i].courseGrade<<endl;

cout<<"No."<<i<<"Your GPA " <<obj[i].GPA<<endl;

}
}

最佳答案

直接的解决方案是从 int main()void input() 注释掉 studentType obj[3]; code>void print() 并将其声明为 global 变量。否则每个函数都在 obj本地拷贝上工作。

关于c++ - 我的 for 循环第一次接受输入但第二次不正确,并显示第二次输入的输出。我不明白为什么会这样。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32500186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com