Aide declaration en C

mator -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, voici le debut de mon programme.Quand je le lance il m'affiche le 1er point d 'interrogation sur la console, j 'inscris 1600 et il affiche le 2eme point d 'interrogation et la dès que je rentre un chiffre le chiffre ne s 'affiche pas et plus rien.
Pouvez-vous me dire ce qui ne va pas dans mes declarations?
Merci
___________
# include <stdio.h>
main ()
{
FILE *barcd;
FILE *forve;
char possib9[10];
char tout[10];

unsigned long tab[1700][10],zab[1700][1];
unsigned short ca[10],xab[2][10];
unsigned long y,i;
unsigned short j,k,a,r,s,t,v,b,c,d,e,f,g,h,l,m;

barcd = fopen ("possib9","w");
forve= fopen ("tout","r");
scanf("%lu",&y);
for(i=0;i<y;i++) {
for(j=0;j<10;j++) {
fscanf(forve,"%lu",&tab[i][j]);
}
}

scanf("%hu %hu %hu %hu %hu",&a,&r,&s,&t,&v);
Configuration: Mac PowerPC
Internet Explorer 5.0

2 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    s
    0
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    C'est impossible que ça compile ça ! Ou alors tu as un compilateur en carton pâte.
    Que cherches-tu à faire ?

    1) un main retourne un int (le code d'exécution, 0 si tout va bien)
    2) tout fopen ouvre un fichier et si celui-ci est ouvert avec succès, doit être fermé avec la commande fclose
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef int value_t; // Le type des valeurs stockées dans la matrice
    
    int main(int argc,char **argv){
        // Declarer les variables
        char *filename;
        FILE *fp;
        unsigned nb_row,nb_col,i,j;
        value_t **matrix;
    
        // Controler les arguments
        if(argc!=4){
            fprintf(stderr,"usage: %s filename nb_row nb_column\n",argv[0]);
            fprintf(stderr,"lit une matrice dans un fichier de taille nb_row,nb_column\n");
            return 1;
        }
    
        // Convertir les parametres
        filename = argv[1];
        nb_row = atoi(argv[2]);
        nb_col = atoi(argv[3]);
        if(!( fp = fopen(filename,"r") )){
            fprintf(stderr,"can't open %s\n",filename);
            return 2;
        }
        printf("filename = %s\n",filename);
        printf("nb_row = %d\n",nb_row);
        printf("nb_col = %d\n",nb_col);
    
        // Allouer la matrice
        matrix = (value_t **)malloc(sizeof(value_t *)*nb_row);
        for(i=0;i<nb_row;++i) matrix[i] = (value_t *)calloc(sizeof(value_t),nb_col);
    
        // Lire le fichier
        for(i=0;i<nb_row;++i){
            for(j=0;j<nb_col;++j){
                fscanf(fp,"%d",&matrix[i][j]);
            }
        }
    
        // Afficher la matrice lue
        printf("Resultat:\n");
        for(i=0;i<nb_row;++i){
            for(j=0;j<nb_col;++j){
                printf("%d\t",matrix[i][j]);
            }
            printf("\n");
        }
    
        // Quitter proprement
        for(i=0;i<nb_row;++i) free(matrix[i]);
        free(matrix);
        fclose(fp);
        return 0;
    }

    Ce qui donne :
    (mando@aldur) (~) $ cat plop.txt
    1       2       3       4
    5       6       7       8
    9       10      11      12
    (mando@aldur) (~) $ gcc -W -Wall plop.c
    (mando@aldur) (~) $ ./a.out plop.txt 3 4
    filename = plop.txt
    nb_row = 3
    nb_col = 4
    Resultat:
    1       2       3       4
    5       6       7       8
    9       10      11      12

    Bonne chance
    0