Oppure

Loading
24/06/08 11:47
matti
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[i]=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[i]);
}
//---------------------------------------------------------------------------------------------------------//
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[i]=vettore1[i];
}

for(int i=(n1);i<(n3);i++){
v[i]=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]);
            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 24/06/08 11:49
aaa
25/06/08 11:09
Amarath
Quando hai fatto il progetto con dev, che linguaggio hai scelto?
aaa
25/06/08 12:08
matti
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è...
aaa
25/06/08 15:29
Amarath
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?
aaa
25/06/08 16:21
matti
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.
aaa
25/06/08 16:26
matti
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
aaa
27/06/08 16:03
Amarath
apri il dev fai nuovo progetto.. sotto a destra c'è scritto c c++ . Vedi che hai selezionato
aaa