问题描述
- 结构体交换的时候为什么失败,不明白哪里错了
- #include
using namespace std;
typedef struct student
{
int a;
}STU;
int main()
{
STU stu[10];
STU swap;
int ij;
for(i=0;i {
cin>>stu[i].a;
}
for(i=0;i<10;i++)
{
cout<<stu[i].a<<""t"";
}
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(stu[i].a < stu[j].a)
swap=stu[i];
stu[i]=stu[j];
stu[j]=swap;
}}for(i=0;i<10;i++){ cout<<stu[i].a<<""t"";}return 0;
}
解决方案
if(stu[i].a < stu[j].a)这个后面要加上大括号,满足if的时候只会执行一句swap=stu[i];
而后面的两句每次都会执行
#include <iostream>using namespace std;typedef struct student{ int a;}STU;int main(){ STU stu[10]; STU swap; int ij; for(i=0;i <10; i++){ cin>>stu[i].a; } for(i=0;i<10;i++) { cout<<stu[i].a<<""t""; } for(i=0;i<9;i++) { for(j=i+1;j<10;j++) { if(stu[i].a < stu[j].a) { swap=stu[i]; stu[i]=stu[j]; stu[j]=swap; } } } for(i=0;i<10;i++) { cout<<stu[i].a<<""t""; } return 0;}
解决方案二:
晚上看的时候无意间看到了,哭笑不得,不过还是多谢了。
时间: 2024-12-23 18:35:35