Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    760

    Asserzioni e complessità array c

    L' asserzione finale è che per ogni i compreso tra 0 e a[i] multiplo di 3 e u =0 o =1
    La complessità è O (n) perchè si scorre una sola volta l' array
    L 'invariante è che per ogni i conpreso tra 0 e N-1 u è 0 o 1
    Sono giuste queste affermazioni,com' è l' asserzione iniziale?
    codice:
    #include<stdio.h>
    #define N 5
    int pari(int a[N]);
    main(){
    int a[N];
    int i=0;
    printf("INSERISCI ARRAY\n");
    for(i=0;i<N;i++){
        printf("\nInserisci elemento %d di %d ",i+1,N);
        scanf("%d",&a[i]);}
    
    printf("\nSTAMPA ARRAY");
    for(i=0;i<N;i++){
        printf("\nL' elemento e' %d ",a[i]);}
    
    int cont=0;
    cont=pari(a);
    printf("\npari e' %d ",cont);
    }
    
    int pari(int a[N]){
        int u=0;int i=0;
        for ((i=0;i<N;i++) && (u!=0)){
    
            if(a[i]%3==0) u=;
            }
            return u;
            }

  2. #2

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    In particolare, spiegaci questa linea

    for ((i=0;i<N;i++) && (u!=0)){
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    760
    avete perfettamente ragione ,era una variante a cui stato lavorando e ho sbagliato a postare,ecco il codice giusto.....


    codice:
    #include<stdio.h>
    #define N 5
    int pari(int a[N]);
    main(){
    int a[N];
    int i=0;
    printf("INSERISCI LISTA\n");
    for(i=0;i<N;i++){
        printf("\nInserisci elemento %d di %d ",i+1,N);
        scanf("%d",&a[i]);}
    
    printf("\nSTAMPA LISTA");
    for(i=0;i<N;i++){
        printf("\nL' elemento e' %d ",a[i]);}
    
    int cont=0;
    cont=pari(a);
    printf("\npari e' %d ",cont);
    }
    
    int pari(int a[N]){
        int u=1;int i=0;
        while ((i<N) && (u!=0)){
    
            if(a[i]%3!=0) u=0;
            i++;
            }
            return u;
            }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.