请参阅以下代码。基于先前的字符串,似乎/ 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;
}
编译评论的答案,将其从未答复的问题列表中删除:
一个)
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左右来编辑程序。使用“减号”的备用/正确版本可能会解决您的问题。