Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - domanda urgente
Forum - C/C++ - domanda urgente

Avatar
matti (Normal User)
Newbie


Messaggi: 11
Iscritto: 21/06/2008

Segnala al moderatore
Postato alle 13:47
Martedì, 24/06/2008
scusate...questo è il mio programma...che gestisce i numeri naturali tramite vettori , unisce due vettori, controlla che ci siano solo numeri naturali e scrive su file l'insieme unione.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


//---------------------------------------------------------------------------------------------------------//
//                            DICHIARAZIONE FUNZIONI
//---------------------------------------------------------------------------------------------------------//
int * caricavettore(int n);
void stampavettore(int* v,int n);
int * unione(int * vettore1,int * vettore2,int & n3,int n1,int n2);
void stampa_su_file(int * vettore3,int n3);

//---------------------------------------------------------------------------------------------------------//
//                                  PROGRAMMA
//---------------------------------------------------------------------------------------------------------//

int main(void){

   int n1=0,n2=0,n3=0;
    int * vettore1;
    int * vettore2;
    int * vettore3;
   printf("CARICAMENTO PRIMO VETTORE\n");
   printf("-------------------------\n");
   printf("Quanti valori vuoi caricare?\n");
   scanf("%d",&n1);
    vettore1=caricavettore(n1);
   printf("-------------------------\n");
   printf("CARICAMENTO SECONDO VETTORE\n");
   printf("-------------------------\n");
   printf("Quanti valori vuoi caricare?\n");
   scanf("%d",&n2);
   vettore2=caricavettore(n2);
   printf("-------------------------\n");
   printf("STAMPA PRIMO VETTORE\n");
   printf("-------------------------\n");
   stampavettore(vettore1,n1);
   printf("-------------------------\n");
   printf("STAMPA SECONDO VETTORE\n");
   printf("-------------------------\n");
   stampavettore(vettore2,n2);
   printf("-------------------------\n");
   n3=n1+n2;
   vettore3=unione(vettore1,vettore2,n3,n1,n2);
   printf("-------------------------\n");
   printf("UNIONE CREATA\n");
   printf("-------------------------\n");
   stampa_su_file(vettore3,n3);
   printf("-------------------------\n");
   printf("FILE DI STAMPA CREATO\n");
   printf("-------------------------\n");
    system("PAUSE");
}
//---------------------------------------------------------------------------------------------------------//
//                                  FUNZIONI
//---------------------------------------------------------------------------------------------------------//
int * caricavettore(int n){

      int* v;
      int errore;
      int numero_reale=0;

      v=(int*)malloc(sizeof(int)*n);
      srand(time(0));
      for (int i=0;i<n;i++){
           do{
              errore=0;
              printf("Dammi il valore numero: %d \n",(i+1));
               scanf("%d",&numero_reale);
              v=numero_reale;
              if(numero_reale<0){
                 printf("%d",numero_reale);
                 printf(" Non e' un numero naturale!\n");
                 errore=1;
              }
              for(int k=0;k<i;k++)
                 if(v[k]==numero_reale){
                  printf("Il numero immesso e' gia presente all'interno del vettore\n");
                  errore=1;
                  k=i;
                 }
           }while(errore==1);
      }
      return v;
}
//---------------------------------------------------------------------------------------------------------//
void stampavettore(int* v,int n){
     for (int i=0;i<n;i++)
         printf("Elemento %d: %d\n",i,v);
}
//---------------------------------------------------------------------------------------------------------//
int * unione(int * vettore1,int * vettore2,int & n3,int n1,int n2){

      int* v,k=0;
      v=(int*)malloc(sizeof(int)*(n3));
      srand(time(0));

      
      for (int i=0;i<n1;i++){
          v=vettore1;
      }

      for(int i=(n1);i<(n3);i++){
          v=vettore2[k];
          for(int app=0;app<i;app++)
              if(v[app]==vettore2[k]){
                i--;
                n3--;
              }
          k++;
      }
      return v;
}
//---------------------------------------------------------------------------------------------------------//
void stampa_su_file(int * vettore3,int n3){
        FILE *fp;
        int i;
        fp = fopen("UNIONE.txt", "w");
        i = 0;
        while (i < n3)
        {
            fprintf(fp, "%d\n", vettore3);
            i++;
        }
        fclose(fp);

}

secondo voi come mai se lo salvo con estensione .cpp funziona e se lo salvo in .c no?
Il mio programma deve essere in linguaggio c.
Ho sbagliato?....se lo salvo in .c il programma viene compilato, ma quando eseguo mi dice: file non compilato...grazie per l'aiuto
p.s io uso dev

Ultima modifica effettuata da matti il 24/06/2008 alle 13:49
PM Quote
Avatar
Amarath (Normal User)
Pro


Messaggi: 85
Iscritto: 08/05/2008

Segnala al moderatore
Postato alle 13:09
Mercoledì, 25/06/2008
Quando hai fatto il progetto con dev, che linguaggio hai scelto?

PM Quote
Avatar
matti (Normal User)
Newbie


Messaggi: 11
Iscritto: 21/06/2008

Segnala al moderatore
Postato alle 14:08
Mercoledì, 25/06/2008
ho scoperto questa cosa strana a cui non trovo spiegazione.....al di là di un errore presente che poi ho scovato se il programma viene fatto girare in linguaggio c con estensione .c su windows vista viene ben compilato ma non eseguito, su windows xp invece viene sia implementato che eseguito.....chissà perchè...

PM Quote
Avatar
Amarath (Normal User)
Pro


Messaggi: 85
Iscritto: 08/05/2008

Segnala al moderatore
Postato alle 17:29
Mercoledì, 25/06/2008
sinceramente non credo ad un mancato supporto su vista al c..( anche se possibile.. )

Comunque ti ripeto, controllato bene che linguaggio hai scelto all'atto della creazione del progetto?

PM Quote
Avatar
matti (Normal User)
Newbie


Messaggi: 11
Iscritto: 21/06/2008

Segnala al moderatore
Postato alle 18:21
Mercoledì, 25/06/2008
mi avevano detto che per come era scritto andava bene sia come c che come c++....non è così?
ci vedi qualche errore se fosse scritto in c?

infatti su xp gira sia come estensione in cpp che con estensione c.
a parte che codesto programma che ho caricatao aveva degli errori nel ciclo for che ho visto dopo.

PM Quote
Avatar
matti (Normal User)
Newbie


Messaggi: 11
Iscritto: 21/06/2008

Segnala al moderatore
Postato alle 18:26
Mercoledì, 25/06/2008
Poi scusami ma non capisco la tua domanda....io quando ho aperto dev per creare il mio progetto ho cliccato su nuovo e ho incominciato a scrivere.
Il programma non mi ha chiesto un opzione su come programmare.
Anche perchè il 90% delle strutture del c vengono riconosciute dal c++ no?
Aspetto notizie grazie

PM Quote
Avatar
Amarath (Normal User)
Pro


Messaggi: 85
Iscritto: 08/05/2008

Segnala al moderatore
Postato alle 18:03
Venerdì, 27/06/2008
apri il dev fai nuovo progetto.. sotto a destra c'è scritto c c++ . Vedi che hai selezionato

PM Quote