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

时间:2018-03-01 14:12:43

标签: c

请参阅以下代码。基于先前的字符串,似乎/ 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;
}

1 个答案:

答案 0 :(得分:1)

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

A)

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可能是某些&#34;智能连字符&#34;的字节值。因为-是ASCII 45.建议您不要使用Microsoft Word左右来编辑程序。 使用&#34;减号&#34;的备用/正确版本可能会解决您的问题。