编译器在C'中引用'/ 226错误,指的是代码中的减号

问题描述 投票:1回答:1

请参阅以下代码。基于先前的字符串,似乎/ 226错误是编译器将“ - ”符号解释为八进制中的226并且不在C代码中接受它。

请注意,发布的代码可能不会显示所描述的行为,因为所讨论的“减号”可能无法使其以特殊的形式呈现给编译器(编辑器和浏览器阻碍了......)。这与MCVE尽可能接近。

那么如何将其解释为“ - ”符号呢?

#include<stdio.h>
#include<math.h>

int main(int argc)
{
    int x;
    int y;
    int auxiliary;

    int arr[5];
    printf("Enter your5 digit array: ");
    scanf("%d, %d, %d, %d, %d", &arr);

    for (x = 0; x < 5; x++)
    {
        auxiliary = arr[x];
        arr[x] = arr[5 – x];
        arr[5 – x] = auxiliary;
    }

    printf("the sorted array is: %d,", arr);
    return 0;
}
c
1个回答
1
投票

编译评论的答案,将其从未答复的问题列表中删除:

一个)

int main(int argc)

这不是main公认的功能头。

b)

使用scanf进行数组的方式不正确。 (这种论据的不足是未定义的行为)。

scanf("%d, %d, %d, %d, %d", &arr);

C)

arr[x] = arr[5 – x];

如果x等于0并且因此未定义的行为,则是在数组之外的访问。

d)

printf("the sorted array is: %d,", arr);

在这里滥用printf阵列与上面的一致。

e)最重要的是,因为它最合理地解释了你实际要问的内容(Paul Olgivie的信用)。

226可能是某些“智能连字符”的字节值,因为-是ASCII 45.建议您不要使用Microsoft Word左右来编辑程序。使用“减号”的备用/正确版本可能会解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.