在spoj中获取C中的运行时错误toandfro classic

时间:2015-12-19 17:44:02

标签: c debugging compilation runtime-error runtime-compilation

以下是问题的链接。 http://www.spoj.com/problems/TOANDFRO/  这是我的代码的链接 http://ideone.com/w5wafl 在键盘上,它表示浮点异常。这是键盘的链接 http://codepad.org/FW9bKp5k(删除空格bw代码 - 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;
}

1 个答案:

答案 0 :(得分:1)

如果用户输入零作为数组的宽度,则行length_of_array = strlen(input_array) / width_of_array;将除以零。 CodePad将此标记为浮点错误,但在运行时会导致未定义的行为。