Je suis un nouveau débutant en C, je fais des tâches de USACO, c'est la tâche "gift1". Je voudrais penser à des solutions moi-même, donc si vous venez de me dire pourquoi je reçois cette erreur de bus 10 au lieu de me donner la réponse de cette tâche, ce sera reconnaissant reconnaissant.erreur de bus 10 en C
J'utilise OS système X et gcc (de Xcode) version est
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.1.0
Thread model: posix
Voici mon code (toujours pas encore fini):
/*
LANG: C
TASK: gift1
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
FILE *input_file, *output_file;
int total_people, giving_to_counter, accepting, having[9];
char giver[9][13], receiver[9][13], person;
int people_scaner, people_judger;
int main() {
input_file=fopen("gift1.in", "r");
output_file=fopen("gift1.out", "w+");
fscanf(input_file, "%d\n", &total_people);
people_scaner = 0;
while(people_scaner<total_people){
fscanf(input_file, "%s", giver[people_scaner]);
people_scaner ++;
}
fscanf(input_file, "%s", &person);
printf("%s\n", &person);
people_judger = 0;
do{
people_judger ++;
} while (
strcmp(&person, giver[people_judger]) !=0
);
fscanf(input_file, "%d%d", &having[people_judger], &giving_to_counter);
printf("%d\n%s\n%d\n%d\n", people_judger, giver[people_judger], having[people_judger], giving_to_counter);
fclose(input_file);
fclose(output_file);
return 0;
}
J'ai essayé d'utiliser le code tihs lire le fichier comme ceci:
5
dave
laura
owen
vick
arm
dave //if this line is "laura, owen, vick or arm" the code works good, but if it is "dave" I will get bus error 10?
200 3
laura
owen
vick
owen
500 1
dave
arm
150 2
vick
owen
laura
0 2
arm
vick
vick
0 0
vérifiez le succès de 'fopen()' d'abord, puis celui de 'fscanf()'. –
avec 'char person', en utilisant' fscanf (input_file, "% s", & person); 'est faux, même avec' printf ("% s \ n", & person); ' –