在 spoj toandfro classical 中获取 C 中的运行时错误
Getting runtime error in C in spoj toandfro classical
这是问题的link。
http://www.spoj.com/problems/TOANDFRO/
这是我的代码的 link
http://ideone.com/w5wafl
在键盘上,它说浮点异常。这是 link 到键盘
http://codepad.org/FW9bKp5k(删除 space bw code--pad)
为什么会出现运行时错误。是因为字符串或数组中的错误。
我把代码放在这里。
#include <stdio.h>
#include <string.h>
int main(void)
{
int width_of_array, length_of_array, i,j , k;
k = 0;
char input_array[300], answer[300][300];
scanf("%d", &width_of_array);
scanf("%s", input_array);
length_of_array = strlen(input_array) / width_of_array;
for (i = 0 ; i < length_of_array ; i++)
{
if (i % 2 == 0)
{
for ( j = 0 ; j < width_of_array ; j++)
{
answer[i][j] = input_array[k++];
}
}
else
{
for (j = width_of_array - 1 ; j >= 0 ; j--)
{
answer[i][j] = input_array[k++];
}
}
}
for (j = 0 ; j < width_of_array ; j++)
{
for (i = 0 ; i < length_of_array ; i++)
{
printf("%c", answer[i][j]);
}
}
return 0;
}
如果用户输入零作为数组的宽度,则行 length_of_array = strlen(input_array) / width_of_array;
将被零除。 CodePad 将此标记为浮点错误,但在运行时会导致未定义的行为。
这是问题的link。 http://www.spoj.com/problems/TOANDFRO/ 这是我的代码的 link http://ideone.com/w5wafl 在键盘上,它说浮点异常。这是 link 到键盘 http://codepad.org/FW9bKp5k(删除 space bw code--pad) 为什么会出现运行时错误。是因为字符串或数组中的错误。 我把代码放在这里。
#include <stdio.h>
#include <string.h>
int main(void)
{
int width_of_array, length_of_array, i,j , k;
k = 0;
char input_array[300], answer[300][300];
scanf("%d", &width_of_array);
scanf("%s", input_array);
length_of_array = strlen(input_array) / width_of_array;
for (i = 0 ; i < length_of_array ; i++)
{
if (i % 2 == 0)
{
for ( j = 0 ; j < width_of_array ; j++)
{
answer[i][j] = input_array[k++];
}
}
else
{
for (j = width_of_array - 1 ; j >= 0 ; j--)
{
answer[i][j] = input_array[k++];
}
}
}
for (j = 0 ; j < width_of_array ; j++)
{
for (i = 0 ; i < length_of_array ; i++)
{
printf("%c", answer[i][j]);
}
}
return 0;
}
如果用户输入零作为数组的宽度,则行 length_of_array = strlen(input_array) / width_of_array;
将被零除。 CodePad 将此标记为浮点错误,但在运行时会导致未定义的行为。