Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- //Funzioni da implementare
- int *leggiInput(int *dim){
- int n=0,i;
- scanf("%d",&n);
- int *a=malloc(n*sizeof(int));
- for(i=0;i<n;i++)
- scanf("%d",&a[i]);
- *dim=n;
- return a;
- }
- int *eliminaDup(int *vect, int dim, int *dim_nodup){
- int i=0,k,trovato=0, dimen=0,x=-1;
- int *a=malloc(dim*sizeof(int));
- for(k=0;k<dim;k++){
- i=k-1;
- trovato=0;
- while(trovato==0 && i>=0){{
- if(vect[k]==vect[i])
- trovato=1;
- }
- i--;
- }
- if (trovato==0){
- x++;
- a[x]=vect[k];
- dimen++;}
- }
- *dim_nodup=dimen;
- return a;
- }
- int ugualeASomma(int *vect,int dim){
- int i=0,j=0, somma=0, uguale=0;
- while(i<dim && uguale!=1){
- while(j<dim && i<dim)
- {
- if (j!=i)
- somma=somma+vect[j];
- j++;
- }
- //printf("%d\n", somma);
- if (somma==vect[i])
- uguale=1;
- else uguale=0;
- somma=0;
- j=0;
- i++;
- }
- return uguale;
- }
- int *maggioreDeiSuccessivi(int *vect, int dim){
- int *a=malloc(dim*sizeof(int));
- int i=0, j=0,mag=1;
- for (i=0;i<dim;i++){
- mag=1;
- j=i+1;
- while(j<dim && mag==1){
- if (vect[i]>vect[j])
- j++;
- else mag=0;
- }
- if (mag==1)
- a[i]=1;
- else a[i]=0;
- }
- return a;
- }
- int main()
- {
- int *input, *nodup, *results;
- int dim, dim_nodup, i;
- //Legge l'input
- input=leggiInput(&dim);
- printf("Stampa dei valori in input: (%d valori)\n", dim);
- for (i=0; i<dim; i++)
- printf("%d\n",input[i]);
- //Elimina i duplicati
- nodup=eliminaDup(input,dim,&dim_nodup);
- printf("Stampa dei valori senza duplicati: (%d valori)\n", dim_nodup);
- for (i=0; i<dim_nodup; i++)
- printf("%d\n",nodup[i]);
- //Esegue ugualeASomma
- printf("Risultato di ugualeASomma: %d\n", ugualeASomma(nodup,dim_nodup));
- //Esegue maggioreDeiSuccessivi
- results=maggioreDeiSuccessivi(nodup,dim_nodup);
- printf("Risultato maggioreDeiSuccessivi:\n");
- for(i=0; i<dim_nodup; i++)
- printf("%d\n",results[i]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement