为什么逻辑在代码中无法正常工作?

why is the logic not working properly in the code?

本文关键字:常工作 工作 代码 为什么      更新时间:2023-10-16

代码编译正常,但无法正常工作 在此代码中,我使用了一种算法按升序对数字列表进行排序

int main(){
struct intlist
{
int a;
int b;
int c;
int d;
int e;
int f;
int g;
int h;
int i;
int j;
};
intlist letter;
std::cout<<"decide the value of variable : "<<'n';    
std::cout<<" a is ";
std::cin>>letter.a;
std::cout<<" b is ";
std::cin>>letter.b;
std::cout<<" c is ";
std::cin>>letter.c;
std::cout<<" d is ";
std::cin>>letter.d;
std::cout<<" e is ";
std::cin>>letter.e;
std::cout<<" f is ";
std::cin>>letter.f;
std::cout<<" g is ";
std::cin>>letter.g;
std::cout<<" h is ";
std::cin>>letter.h;
std::cout<<" i is ";
std::cin>>letter.i;
std::cout<<" j is ";
std::cin>>letter.j;
int a=1,b{0},temp;
for(a=1; a>=9; ++a)  \using bubble sort algorithm here 
{
for(b=0; a>=(9-b); ++b)
{
if (b==1)
{
if (letter.a > letter.b)
{
temp=letter.b;
letter.b=letter.a;
letter.a=temp;
}
}
if (b==2)
{
if (letter.b> letter.c)
{
temp=letter.c;
letter.c=letter.b;
letter.b=temp;
}
}
if (b==3)
{
if (letter.c> letter.d)
{
temp=letter.d;
letter.d=letter.c;
letter.c=temp;
}
}
if (b==4)
{
if (letter.d> letter.e)
{
temp=letter.e;
letter.e=letter.d;
letter.d=temp;
}
}
if (b==5)
{
if (letter.e> letter.f)
{
temp=letter.f;
letter.f=letter.e;
letter.e=temp;
}
}
if (b==6)
{
if (letter.f> letter.g)
{
temp=letter.g;
letter.g=letter.f;
letter.f=temp;
}
}
if (b==7)
{
if (letter.g> letter.h)
{
temp=letter.h;
letter.h=letter.g;
letter.g=temp;
}
}
if (b==8)
{
if (letter.h> letter.i)
{
temp=letter.i;
letter.i=letter.h;
letter.h=temp;
}
}
if (b==9)
{
if (letter.i> letter.j)
{
temp=letter.j;
letter.j=letter.i;
letter.i=temp;
}
}
}
}
std::cout<<"variables now are as follows : "<<'n';
std::cout<<" a is "<<letter.a<<'n';
std::cout<<" b is "<<letter.b<<'n';
std::cout<<" c is "<<letter.c<<'n';
std::cout<<" d is "<<letter.d<<'n';
std::cout<<" e is "<<letter.e<<'n';
std::cout<<" f is "<<letter.f<<'n';
std::cout<<" g is "<<letter.g<<'n';
std::cout<<" h is "<<letter.h<<'n';
std::cout<<" i is "<<letter.i<<'n';
std::cout<<" j is "<<letter.j<<'n';
return 0;
}

我在这里使用的算法是 气泡排序 . 代码似乎在不更改它们的情况下打印相同的值。

问题,你真的需要使用结构吗?

C 型数组或 C++ 向量会更好,因为这似乎没有必要。

编辑: 我正在添加一个数组示例以防万一。

// Creating the array
int intlist[10];
// Inserting elements into the array
for (int i = 0; i < 10; i++) {
std::cout << "Enter element " << i << ": " << std::endl;
std::cin >> intlist[i];
}
// And so on...
for(a=1; a>=9; ++a)

这个for循环将a设置为1并检查它是否>=9,这是false,所以它永远不会进入循环。

for(a=1; a<=9; ++a)

应该是正确的。

带有bfor循环也有同样的问题。

注释标有//,而不是\

内部循环运行一次太少,因此请将其更改为for(b=0; a<=(10-b); ++b)

https://ideone.com/4MWZKC