Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    programma c codici a barre

    salve, ho provato a scrivere questo semplice programma che controlla il codice di controllo dei codici a barre, ma ogni volta che lo eseguo mi da un codice diverso....-(
    per esempio se metto :
    1° cifra 0
    1° serie di 5 cifre 13800
    2° serie di 5 cifre 15173

    e lo eseguo per due volte di seguiti mi da 2 risultati diversi.
    il risultato atteso dovrebbe essere 5

    ma ho come risultato una volta 4 e una volta 2


    [raffaello@localhost ~]$ ./barre
    digitare la prima (singola) cifra:0
    digitare il primo gruppo di 5 cifre:13800
    digitare il secondo gruppo di 5 cifre:15173
    check digit: 4
    [raffaello@localhost ~]$ ./barre
    digitare la prima (singola) cifra:0
    digitare il primo gruppo di 5 cifre:13800
    digitare il secondo gruppo di 5 cifre:15173
    check digit: 2


    [raffaello@localhost ~]$ gcc --version
    gcc (GCC) 4.1.2 20070925 (Red Hat 4.1.2-33)
    Copyright (C) 2006 Free Software Foundation, Inc.



    /*
    * programma per che calcola la cifra di controllo
    * dei codici a barre
    */

    #include<stdio.h>
    int main(void)

    {

    int d, i1, i2, i3, i4, i5, j1, j2, j3, j4, j5, prima_somma, seconda_somma, totale;

    printf("digitare la prima (singola) cifra:");
    scanf("%d1d", &d);

    printf("digitare il primo gruppo di 5 cifre:");
    scanf("%d1d%d1d%d1d%d1d%d1d", &i1 ,&i2, &i3, &i4, &i5);

    printf("digitare il secondo gruppo di 5 cifre:");
    scanf("%d1d%d1d%d1d%d1d%d1d", &j1 ,&j2, &j3, &j4, &j5);

    prima_somma = d + i2 + i4 + j1 + j3 + j5;
    seconda_somma = i1 + i3 + i5 + j2 + j4;
    totale = 3 * prima_somma + seconda_somma;
    printf("check digit: %d\n", 9 - ((totale -1) % 10));
    return(0);
    }

    qualcuno è in grado di aiutarmi?

  2. #2

    Re: programma c codici a barre

    scanf("%d1d%d1d%d1d%d1d%d1d", &i1 ,&i2, &i3, &i4, &i5);
    Mi sa che stai sbagliando il formato delle due scanf, prova così:

    scanf("%1d%1d%1d%1d%1d", &i1 ,&i2, &i3, &i4, &i5);

    HTH,

  3. #3
    hai ragione ....grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.