coder20020723 发表于 2023-12-12 23:55:38

请问这串代码存在什么问题

#include<stdio.h>
int main()
{
        int a={1,2,3,4,5,6,7,8,9};
       
        int temp,i,j;                               //定义变量
        for(i=0;i<8;i++)
                for(j=0;j=8-i;j++)                        //利用冒泡法对比较过的数据不再进行比较
                        if(a>a
                                )         //比较大小
                        {
                                temp=a;
                                a=a;
                                a=temp;
                        }
        for(i=0;i<9;i++)
                printf("%5d",a        );               //数组的输出
        printf("\n");
        return 0;
}

FishC 发表于 2023-12-12 23:56:02

这段代码存在几个问题:

1. `#include` 缺少头文件的名称,应该包含相应的头文件,例如 `#include <iostream>` 来使用输入输出流。
2. `int a={1,2,3,4,5,6,7,8,9};` 这种方法不能用来初始化数组,应该改为 `int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};`。
3. `ia` 缺少数组下标,应该是 `i < sizeof(a)/sizeof(a)`。
4. `a=a;` 在交换两个元素值的时候没有互换,应该是 `a = a; a = temp;`。
5. `for(i=0;i<aiz-1;++i)` 应该改为 `for(i=0;i<sizeof(a)/sizeof(a)-1;++i)`。

修复上述问题后的代码如下:

#include <iostream>
using namespace std;

int main() {
    int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
   
    int temp,i,j;             //定义变量
    for(i=0; i<sizeof(a)/sizeof(a)-1; ++i) {   //比较大小
      for(j=i+1; j<sizeof(a)/sizeof(a); ++j) {
            if(a > a) {
                temp = a;
                a = a;
                a = temp;
            }
      }
    }
   
    for(i=0; i<sizeof(a)/sizeof(a); ++i) {    //输出结果
      cout << a << " ";
    }
   
    return 0;
}

这段代码会将数组元素按照升序排列,并输出排序后的结果。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

coder20020723 发表于 2023-12-12 23:57:10

编译器中显示[警告] suggest parentheses around assignment used as truth value [-Wparentheses]

FishC 发表于 2023-12-12 23:57:29

coder20020723 发表于 2023-12-12 23:57
编译器中显示 suggest parentheses around assignment ...

这个错误提示是因为在条件语句中使用了赋值操作符 `=` 而不是相等操作符 `==`。在C/C++中,条件语句的判断需要使用相等操作符来比较值,而 `=` 是用于给变量赋值的操作符。

请检查你的代码的条件表达式部分,确保使用了正确的相等操作符 `==` 来进行比较,例如将 `if (i = 0)` 改为 `if (i == 0)`。同样地,在循环条件中也要注意使用 `==` 来判断是否相等。

如果你想要对一个变量进行赋值操作,并且希望将其作为条件进行判断,可以使用括号将赋值操作与判断操作分隔开,例如 `if ((i = 0))`。但一般来说,不建议在条件语句中使用赋值操作符,以免引起混淆和错误。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 请问这串代码存在什么问题