为什么逻辑在代码中无法正常工作?
why is the logic not working properly in the code?
代码编译正常,但无法正常工作 在此代码中,我使用了一种算法按升序对数字列表进行排序
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)
应该是正确的。
带有b
的for
循环也有同样的问题。
注释标有//
,而不是\
。
内部循环运行一次太少,因此请将其更改为for(b=0; a<=(10-b); ++b)
。
https://ideone.com/4MWZKC
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- <<操作员在下面的行中工作
- 有人能解释一下为什么下界是这样工作的吗C++的
- ExtractIconEx:可以工作,但偶尔会崩溃
- C++中的memset函数工作不正常
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 为什么STD ::计数将常数传递给Lambda,而不是在弦上工作时而不是字符
- C++程序已停止工作-求解常微分方程