鱼C论坛

 找回密码
 立即注册
查看: 1145|回复: 3

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

[复制链接]
发表于 2023-12-12 23:55:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
int main()
{
        int a[9]={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[j]>a[j+1]
                                )         //比较大小
                        {
                                temp=a[j];
                                a[j]=a[j+1];
                                a[j+1]=temp;
                        }
        for(i=0;i<9;i++)
                printf("%5d",a[i]        );                 //数组的输出
        printf("\n");
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[0])`。
4. `a=a;` 在交换两个元素值的时候没有互换,应该是 `a[i] = a[j]; a[j] = temp;`。
5. `for(i=0;i<aiz-1;++i)` 应该改为 `for(i=0;i<sizeof(a)/sizeof(a[0])-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[0])-1; ++i) {   //比较大小        for(j=i+1; j<sizeof(a)/sizeof(a[0]); ++j) {            if(a[i] > a[j]) {                temp = a[i];                a[i] = a[j];                a[j] = temp;            }        }    }        for(i=0; i<sizeof(a)/sizeof(a[0]); ++i) {    //输出结果        cout << a[i] << " ";    }        return 0;}
这段代码会将数组元素按照升序排列,并输出排序后的结果。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-12 23:57:10 | 显示全部楼层
编译器中显示[警告] suggest parentheses around assignment used as truth value [-Wparentheses]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 23:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表