Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27

Discussione: [c] problema.

  1. #1
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491

    [c] problema.

    Ok, ho deciso di darmi al c dopo java e Fortan...scaricato e stampato un manuale mi accingo ad un programmino cretino che.....mi sta facendo IMPAZZIRE!!!
    Ma possibile??
    Dove è l'errore?
    codice:
     
    
    #include <stdio.h>
    
    main(){
     unsigned num;
     printf("%s","Inserisci un numero:");
     scanf("%u",num);
     if(primo(num)>0)printf("%s","E'un numero primo\n");
     else printf("%s","Non è primo\n");
    }
    
    signed primo(unsigned x){
    	signed ris=1;                 // maggiore di zero se è primo
    	unsigned count;
    	for(count=2;count < x;count++){  
    	   if((x%count)==0){ris=-1;break;}	
    	   printf("%u%d",x%count,ris); 
    	}
    	return ris;
    }
    l'errore è in run-time, a parte che il programma fornisce risultati sbagliati, mi appare anche:

    codice:
    [marco@localhost CProg]$ ./Primi
    Inserisci un numero:12
    Non è primo
    Segmentation fault (core dumped)
    non capisco cosa voglia dire :master:
    Help...grazie
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  2. #2
    Utente di HTML.it L'avatar di D4MI4NO
    Registrato dal
    Sep 2001
    Messaggi
    275
    codice:
     #include <stdio.h>
    
     unsigned primo(unsigned x);
    
    main(){
     unsigned num;
     printf("%s","Inserisci un numero:");
     scanf("%u",&num);
     if(primo(num)>0)printf("%s","E'un numero primo\n");
     else printf("%s","Non è primo\n");
    }
    
    unsigned primo(unsigned x){
    	signed ris=1;                 // maggiore di zero se è primo
    	unsigned count;
    	for(count=2;count < x;count++){  
    	   if((x%count)==0){ris=-1;break;}	
    	   printf("%u%d",x%count,ris); 
    	}
    	return ris;
    }

  3. #3
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Grazie ma....nulla, sempre lo stesso errore!
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    Usa int primo (unsigned x);

    Perchè usi signed?

    Usa unsigned oppure int

    puoio scrivere direttamente printf("Stringa");


  5. #5
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Proverò....ma non capisco deve sta l'ERRORE.... e che significa: "Segmentation fault (core dumped) "
    E quei file "core.123" che mi genera??
    :quipy:
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    Prova e poi sappimi dire... Non capisco perchè usi tutti quei unsigned signed

    Prova con dei semplici int


  7. #7
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491

    Uffi...

    Nulla...proprio non capisco!!
    codice:
     
    #include <stdio.h>
    int primo (unsigned x);
    
    main(){
     unsigned num;
     printf("Inserisci un numero:");
     scanf("%u",num);
     if(primo(num)>0)printf("E'un numero primo\n");
     else printf("Non è primo\n");
    }
    
    int primo(unsigned x){
    	int ris=1;                 // maggiore di zero se è primo
    	unsigned count;
    	for(count=2;count < x;count++){
    	   if((x%count)==0){ris=-1;break;}
    	}
    	return ris;
    }
    Da quello che mi sembra (con un pò di debbuging è che non mi entra nel cilo del metodo "primo"...come se le condizioni di for(..) siano errate :master:
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  8. #8
    codice:
    #include <stdio.h>
    
    int primo (unsigned x);
    
    void main()
    {
        unsigned num;
        printf("Inserisci un numero: ");
        scanf("%u",&num);
        if(primo(num)>0)
     	printf("E\\'un numero primo\n");
        else 
    	printf("Non e\\' primo\n");
    }
    
    
    int primo(unsigned x)
    {
        int ris=1;          // maggiore di zero se è primo
        unsigned count;
        for(count=2; count<x; count++)
        {
           if((x%count)==0)
           {
    	   ris=-1;
    	   break;
           }
        }
       
        return ris;
    }
    ...Terrible warlords, good warlords, and an english song

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    Se gli passi un numero maggiore o uguale a 2 non entra nel ciclo...

  10. #10
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Grazie Jonny_deep!!
    Effettivamente ora funziona...ma non capisco, non c'era errore di sintassi, è come se non gli piacesse che il codice era scritto un pò brutto!!!
    Puoi spiegarmi?

    Grazie
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

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.