...时候发生段错误,我运行时答案是没错的,求解为什么会发生段错误...
发布网友
发布时间:2024-01-13 03:37
我来回答
共2个回答
热心网友
时间:2024-03-11 08:10
首先说一下你没有按照题目要求的做,题目明确要求输入一个整数,转换成字符串,然后逆序。
虽然你没按题目要求做,但通不过的原因却不是因为输入不是整数问题,而是'\n'问题,估计测试用的样本是用空格分割数字的,而不是'\n',所以才会越界引起段错误
你试试把条件换成(s[i]=getchar())!=' '看看
热心网友
时间:2024-03-11 08:09
段错误是数组下标越界。不过,你的程序本身就是错的。题目要求把一个整数转化为字符串,你的程序根本就没按题目要求做。
下面是按题目要求写的程序:
#include <stdio.h>
int main()
{
int i=0,n;
char str[100];
scanf("%d",&n);//按题目要求,读入一个整数
while(n)
{
str[i]=n%10+'0';//从整数的个位开始,依次转化为字符
n/=10;
i++;
}
str[i+1]='\0';//添加字符串结束符
printf("%s",str);//直接输出字符串
return 0;
}