Esercizio col ciclo for

di il
7 risposte

Esercizio col ciclo for

Spero che i miei coninui post non diano fastido

comunque ho svolto questo esercizio

Scrivere un programma C che:
legge da standard input una sequenza di interi n finchè n è pari.
Per ogni intero n:
se n < è minore o uguale a 30 stampa i divisori escludendo 1 e n
se n è maggiore di 30 ne stampa i multipli fino a 1000


volevo sapere se era giusto
#include <stdio.h>
#include <stdlib.h>

int main() {
    int n , div , mult;
    
    do{ scanf ("%d" , &n);
    if (n<=30) printf ("il divisore di %d:\n" ,n);
    for(div=2 ; div<n ; div++){ 
              if (n%div==0){printf ("%d\n",div);}}
                            if (n>30) printf ("il multiplo di %d:\n" , n);
                            for (mult=31 ; mult<1000 ; mult++){
                                if (mult%n==0){printf("%d\n" , mult);}}
                                }while (n%2==0); 
                                system ("pause");
                                return 0;
                                }
grazie in anticipo!

7 Risposte

  • Re: Esercizio col ciclo for

    Nessun fastidio ma piuttosto che farlo provare agli altri, perché non lo provi tu e vedi se fa quello che dice l'esercizio? In caso contrario, posti tutto quanto e fornisci i dettagli del malfunzionamento ...
  • Re: Esercizio col ciclo for

    Ho provato! In parte funziona , solo che ho riscontrato delle "anomalie " , quando metto il numero mi compaiono sia i divisori che divisori , mentre dovrebbero apparire a seconda che n sia maggiore o minore di 30 o l uno o l altro (cosa dovrei aver specificato con l' if) inoltre nonostante il do While non sembra far caso se il numero positivo o negativo...per il resto il programma funziona!per quello chiedevo cosa sbagliassi!
  • Re: Esercizio col ciclo for

    Primo ... tu non avevi chiesto cosa sbagliassi ma se era giusto ... e c'è differenza ...

    In secondo luogo, puoi provare a spiegare nuovamente i problemi perché non si capisce nulla ...

    Prova a dirci quale valore inserisce, cosa ottieni e cosa dovresti ottenere ...
  • Re: Esercizio col ciclo for

    Il problema è dev-c++! Cambia IDE!!!!!
    Poi il costrutto è "do{}while();" e non "for(){}while();"
  • Re: Esercizio col ciclo for

    Purtroppo all'esame mi fanno usare dev c++! io comunque ho usato il ciclo for all'interno appunto del do{}while()!! c'è qualcosa di sbagliato nel programma fatto?
  • Re: Esercizio col ciclo for

    Non riesco a capire perché all'universita si ostinino a utilizzare il dev...
  • Re: Esercizio col ciclo for

    purtroppo all'esame mi fanno usare dev c++!
    esiste proprio una FAQ su tale argomentazione.
    Se studi il vero c, all'esame puoi usare anche pinco pallo e non avrai problemi.
    I professori che fanno usare tale ide sarebbero da fustigare, gli alunni che si sottomettono a tale decisione sarebbero da espellere!
    Se il prof di fisica ti dice che la forza gravitazionale è repulsiva tu ci credi? non gli dici niente?


    Usando il dev-c++ quando posti il codice sul forum viene identato malamente. questo causa incomprensioni a che legge il tuo codice.

    ecco usando un buon ide cosa diventa!
    
    #include <stdio.h>
    #include <stdlib.h>
    
    int main() 
    {
        int n , div , mult;
        
        while(1)
        { 
    		printf("Inserisci un numero, <= 30 divisori, > 30 multipli:");
    		fflush(stdout);
    		
    		scanf ("%d" , &n);
    		while ( getchar() != '\n' );
    		
    		if ( n % 2 == 0) break; 
    		
    		if ( n <= 30) 
    		{
    			printf ("il divisore di %d:\n" ,n);
    		
    			for(div=2 ; div<n ; div++)
    			{ 
    				if ( n%div == 0)
    					printf ("%d\n",div);
    			}
    		}
        
    		if (n > 30) 
    		{
    			printf ("il multiplo di %d:\n" , n);
    		
    			for (mult=31 ; mult<1000 ; mult++)
    			{
    				if (mult%n==0)
    					printf("%d\n" , mult);
    			}
    		}
        }
                                    
        return 0;
    }
    
Devi accedere o registrarti per scrivere nel forum
7 risposte