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 |