Esercitazione linguaggio C

di il
4 risposte

Esercitazione linguaggio C

Gentilissimi, chiedo scusa se disturbo ma volevo chiedervi un parere riguardo questo esercizio di programmazione in C: "Scrivere un programma che inserisce in quattro variabili intere: a,b,c e d la propria matricola (la mia 0082300199) così divisa:

variabile a:prime tre cifre,

variabile b: due cifre successive,

variabile c: due cifre successive,

variabile d: ultime due cifre.

Calcolo media matricola.

Di seguito il codice in C


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char matricola[11]; // una stringa di lunghezza 11 per la matricola (10 cifre + terminatore null)
int a, b, c, d;
printf("Inserisci la matricola: ");
scanf("%s", matricola);
// Assicurati che la matricola sia formata da 10 cifre
if (strlen(matricola) != 10) 
{
printf("Matricola non valida. Assicurati di inserire 10 cifre.\n");
return 1; // Termina il programma con un codice di errore
}
// Estrai le parti della matricola
sscanf(matricola, "%3d%2d%3d%3d", &a, &b, &c, &d);
// Stampa le variabili
 printf("a: %03d\n", a);
 printf("b: %2d\n", b);
 printf("c: %02d\n", c);
 printf("d: %d\n", d);
// Calcola la media
float media = (a + b + c + d) / 4.0;
// Stampa il risultato
printf("Questa è la media della mia matricola divisa in quattro gruppi: %.2f\n", media);
return 0;
}

Sicuri di un Vostro aiuto, ringrazio anticipatamente.

4 Risposte

  • Re: Esercitazione linguaggio C

    Direi che va bene, a parte l'ultima printf del gruppo in cui hai usato %d ma era meglio %02d (come per gli altri).

    Quindi

     printf("d: %02d\n", d);

    P.S. Con “gentilissimi” e i saluti finali mi ricordi un altro utente … nel forum si usa una forma più amichevole e ci si dà del tu anche se hai 80 anni …

  • Re: Esercitazione linguaggio C

    Ti ringrazio per il suggerimento.

  • Re: Esercitazione linguaggio C

    Di nulla… alla prossima

  • Re: Esercitazione linguaggio C

    Ciao ragazzi,

    giusto per essere pignoli (ma non lo sono affatto) l'istruzione 

    sscanf(matricola, "%3d%2d%3d%3d", &a, &b, &c, &d);

    vuole %2d in luogo di %3d alla variabile d

    Io alle prime armi per sollecitare gli ultimi neuroni ancora attivi.

    saluti roberto

Devi accedere o registrarti per scrivere nel forum
4 risposte