Errore introvabile(per me)

di il
2 risposte

Errore introvabile(per me)

Salve ho fatto questo programma, compila e tutto, però quando lo eseguo mostra degli errori, in quando per la funzione che dovrebbe convertire maiuscolo in minuscolo e viceversa, il programma spara subito i printf e non fa scrivere negli spazi opportuni; per quanto riguarda la rubrica, nel primo ciclo non fa riempire il cognome, ma negli altri cicli si.
qualcuno riesce a scoprire l'errore, ecco il codice
#include <stdio.h>
#include <string.h>

#define N 10
#define C 20
#define NMAX 30

struct persona {
               char cognome [C],nome [C],telefono[C];};
struct persona archivio [N];

void cmax (int []);
void MaiMin(char []);
void LeggiStringa(char[],unsigned short);
void riempi(struct persona[],unsigned long);
void stampa(struct persona [],unsigned long);

main(){
       unsigned short scelta;
       char x [30];
       int vett[NMAX];
       
                      do{
                             printf("\n1-calcola massimo e ricorrenze");
                             printf("\n2-maiuscolo e minuscolo");
                             printf("\n3-riempi rubrica");
                             printf("\n4-stampa rubrica");
                             printf("\n5-fine");
                             printf("\ninserisci scelta: ");
                             scanf("%u",&scelta);
                             switch(scelta){
                                            case 1: cmax(vett);
                                                    break;
                                            case 2: MaiMin(x);
                                                    break;
                                            case 3: riempi(archivio,N);
                                                    break;
                                            case 4: stampa(archivio,N);
                                                    break;
                                                    }
                                                    }while(scelta<5);
                                                    }
void cmax(int vett[]){
     int n;
     int i;
     int max,cnt;
                      printf("inserisci numero elementi desiderati: ");
                      scanf("%d",&n);
                      for(i=0;i<=n-1;i++){
                                          printf("elemento in posizione %d: ",i);
                                          scanf("%d",&vett[i]);
                                          }
                      max=vett[0];
                      for(i=1;i<n;i++)
                      if(vett[i]>max)
                      max=vett[i];
                      printf("il valore massimo e': %d",max);
                      cnt=0;
                      for(i=0;i<n;i++)
                      if(max==vett[i])
                      cnt=cnt+1;
                      printf("il valore %d ricorre %d volte",max,cnt);
                      }
void MaiMin(char x[]){
     int t;
                       printf("inserisci stringa: ");
                   gets(x);
                   for(t=0;t<strlen(x);t++)
                   if(x[t]>='A'&& x[t]<='Z')
                      x[t]=x[t]+32;
                   printf(" la parola minuscola e':%s",x);
                   for(t=0;t<strlen(x);t++)
                    if(x[t]>='a'&& x[t]<='z')
                      x[t]=x[t]-32;
                   printf("\n la parola maiuscola e':%s",x);
                      }
void LeggiStringa(char s[],unsigned short dim){
     unsigned long i;
                                               for(i=0;(s[i]=getchar())!='\n'&& i<dim-1;i++)
                                               s[i]='\0';
                                               }
void riempi (struct persona v[],unsigned long dim){
     unsigned long i;
                                              for(i=0;i<dim;i++){
                                                                 printf("elemento in posizione %d",i);
                                                                 printf("\nCognome: ");
                                                                 LeggiStringa(v[i].cognome,C);
                                                                 printf("\nnome: ");
                                                                 LeggiStringa(v[i].nome,C);
                                                                 printf("\ntelefono: ");
                                                                 LeggiStringa(v[i].telefono,C);
                                                                 }
                                                                 }
void stampa(struct persona v[],unsigned long dim){
     unsigned long i;
                                        for(i=0;i<dim;i++){
                                                  printf("elemento in posizione %d",i);
                                                  printf("cognome:%s",v[i].cognome);
                                                   printf("\nnome:%s ",v[i].nome);
                                                   printf("\ntelefono:%s",v[i].telefono);
                                                   }
                                                   }

2 Risposte

  • Re: Errore introvabile(per me)

    Ho trovato l'errore, era una sciocchezza...divertitevi a trovarlo, è un errore gravissimo ma semplicissimo.
  • Re: Errore introvabile(per me)

    andreap ha scritto:


    ho trovato l'errore, era una sciocchezza...divertitevi a trovarlo, è un errore gravissimo ma semplicissimo.
    Trovato!
Devi accedere o registrarti per scrivere nel forum
2 risposte