0

Voici le lien vers le problème. http://www.spoj.com/problems/TOANDFRO/ Et voici le lien vers mon code http://ideone.com/w5wafl Sur le bloc de code, il dit l'exception de virgule flottante. Voici le lien vers le codepad http://codepad.org/FW9bKp5k (enlever le pavé de code de l'espace bw) pourquoi est-ce qu'il donne une erreur d'exécution. est-ce à cause d'une erreur dans les chaînes ou le tableau. Je mets le code ici.Erreur d'exécution dans C dans spoj toandfro classique

#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

Vous ne vérifiez jamais la valeur de retour de 'scanf()', la valeur de 'width_of_array' pourrait être' 0' ou quoi que ce soit, il n'y a aucun moyen de savoir si vous confirmez que 'scanf()' renvoie '1'. –

+0

Dans aucun de vos tests, vous ne donnez aucune entrée et attendez une sortie. Comment cela va-t-il vous donner un résultat correct sans se connecter? – ameyCU

+0

@ iharob Désolé.Ma faute. Se sentir comme un idiot maintenant. Je suis un peu nouveau en programmation compétitive. Aurait dû vérifier avant. –

Répondre

1

La ligne length_of_array = strlen(input_array)/width_of_array; aura une division par zéro, si l'utilisateur entre zéro lorsque la largeur de la matrice. CodePad signale ceci comme une erreur de virgule flottante, mais au moment de l'exécution, il en résulte un comportement indéfini.

+0

Merci de m'avoir signalé. Il aurait été une autre possibilité, mais il a été mentionné que les valeurs sont supérieures à zéro, donc ce n'était pas le problème. Toujours, merci !! –