请参阅以下代码。基于先前的字符串,似乎/ 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;
}
答案 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;的备用/正确版本可能会解决您的问题。