二进制“>>”: 没有找到接受“int [5]”类型的右操作数的运算符(或没有可接受的转换)

时间:2021-11-10 17:23:05
#include<iostream>
using namespace std;
struct Student
{
int score[5];
char name[20];
};
int main()
{
Student st[5];
for(int i=0;i<5;i++)
cin>>st[i].name>>st[i].score;
for(int i=0;i<5;i++)
{
for(int j=i+1;j<5;j++)
{
if(st[j].score>st[i].score)
{
Student temp=st[i];
st[i]=st[j];
st[j]=temp;
}
}
}
for(int i=0;i<5;i++)
{
cout<<st[i].name<<st[i].score;}
return 0;
}

第12行总是显示标题所示错误……

5 个解决方案

#1


说得很清楚啊,没有 ( int [5])类型的重载,哪个C++教材/教程说了能直接输入int数组,自己用个循环就行了

#2


引用 1 楼 dustpg 的回复:
说得很清楚啊,没有 ( int [5])类型的重载,哪个C++教材/教程说了能直接输入int数组,自己用个循环就行了

我知道没有这个的重载啊但是不知道什么意思啊。我不是用了for循环输入数组了吗?

#3


struct Student里int score[5];改为int score;

#include<iostream>
using namespace std;
struct Student
{
int score;
char name[20];
};
int main()
{
Student st[5];
for(int i=0;i<5;i++)
cin>>st[i].name>>st[i].score;
for(int i=0;i<5;i++)
{
for(int j=i+1;j<5;j++)
{
if(st[j].score>st[i].score)
{
Student temp=st[i];
st[i]=st[j];
st[j]=temp;
}
}
}
for(int i=0;i<5;i++)
{
cout<<st[i].name<<st[i].score;}
return 0;
}

#4


引用 3 楼 qq423399099 的回复:
struct Student里int score[5];改为int score;

#include<iostream>
using namespace std;
struct Student
{
int score;
char name[20];
};
int main()
{
Student st[5];
for(int i=0;i<5;i++)
cin>>st[i].name>>st[i].score;
for(int i=0;i<5;i++)
{
for(int j=i+1;j<5;j++)
{
if(st[j].score>st[i].score)
{
Student temp=st[i];
st[i]=st[j];
st[j]=temp;
}
}
}
for(int i=0;i<5;i++)
{
cout<<st[i].name<<st[i].score;}
return 0;
}

好的非常感谢~这个问题解决了……然后还有一个问题…… 二进制“>>”: 没有找到接受“int [5]”类型的右操作数的运算符(或没有可接受的转换)我尝试用老师说的从外部输入输出重定向,为什么出现了这样的问题呢?

#5


目测权限问题

#1


说得很清楚啊,没有 ( int [5])类型的重载,哪个C++教材/教程说了能直接输入int数组,自己用个循环就行了

#2


引用 1 楼 dustpg 的回复:
说得很清楚啊,没有 ( int [5])类型的重载,哪个C++教材/教程说了能直接输入int数组,自己用个循环就行了

我知道没有这个的重载啊但是不知道什么意思啊。我不是用了for循环输入数组了吗?

#3


struct Student里int score[5];改为int score;

#include<iostream>
using namespace std;
struct Student
{
int score;
char name[20];
};
int main()
{
Student st[5];
for(int i=0;i<5;i++)
cin>>st[i].name>>st[i].score;
for(int i=0;i<5;i++)
{
for(int j=i+1;j<5;j++)
{
if(st[j].score>st[i].score)
{
Student temp=st[i];
st[i]=st[j];
st[j]=temp;
}
}
}
for(int i=0;i<5;i++)
{
cout<<st[i].name<<st[i].score;}
return 0;
}

#4


引用 3 楼 qq423399099 的回复:
struct Student里int score[5];改为int score;

#include<iostream>
using namespace std;
struct Student
{
int score;
char name[20];
};
int main()
{
Student st[5];
for(int i=0;i<5;i++)
cin>>st[i].name>>st[i].score;
for(int i=0;i<5;i++)
{
for(int j=i+1;j<5;j++)
{
if(st[j].score>st[i].score)
{
Student temp=st[i];
st[i]=st[j];
st[j]=temp;
}
}
}
for(int i=0;i<5;i++)
{
cout<<st[i].name<<st[i].score;}
return 0;
}

好的非常感谢~这个问题解决了……然后还有一个问题…… 二进制“>>”: 没有找到接受“int [5]”类型的右操作数的运算符(或没有可接受的转换)我尝试用老师说的从外部输入输出重定向,为什么出现了这样的问题呢?

#5


目测权限问题