Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 35
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    89

    Semplice programmino in C

    Ciao ragazzi, dovrei fare un semplice programmino dove io inserisco una data da:..,poi mi chiede a:..., il programma inizia a fare dei calcoli strani senza che abbiano senso e poi dopo un tot di secondi si ferma e compare una schermata con scritto:

    dal periodo...al periodo(data che io ho messo prima) sono stati effettuati N. totali=(e qui un numero a casaccio random che cambi ogni volta ma che non superi mai i 600 ma che non sia mai inferiore a 500.

    Qualcuno può aiutarmi?

  2. #2
    Al di là dell'utilità di un programma del genere ( ), in quale dei punti della realizzazione del tuo programma hai problemi?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    89
    l'utilità è una cavolata,però non è che trovo problemi da qualche parte non so proprio come iniziare,non se puoi darmi almeno una spiegazione letteraria e poi io cerco di programmarla..

  4. #4
    Personalmente credo che il C non possa essere spiegato in due parole, inizia a leggerti la guida del C di HTML.it.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    89
    non è che non lo conosco,un momento,apposta mi servirebbe anche una spiegazione scritta del tipo inizializza 3 variabili,poi usa ciclo for usa quest'altro ecc...in questo modo intendo o poi se non puoi aiutarmi pazienza ti ringrazio lo stesso delle risposte..

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    25
    allora stabilisci una variabile (nn sapre i ke tipo utilizzare x una data) poi fai i tuoi calcoli e poi x generare un numero a caso mi pare ci sia la funzione rand() su cui xo vorrei delle spiegazioni sul suo utilizzo da ki se ne intende

  7. #7
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Di C non me ne intendo ma una cosa del genere forse potrebbe andare (è da correggere)
    codice:
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include <time.h>
    
    char *data1,
    char *data2;
    
    int main()
    {
    	srand(time(0));
    
    	printf("Inserire la data di inizio\n");
    		char dt[10];
    		scanf("%d",dt);
    		data1 = (char *)malloc(strlen(dt+1));
    		strcpy(data1,dt);
    
    		memset(dt,0,strlen(dt));
    
    	printf("Inserire la data finale\n");
    		scanf("%d",dt);
    		data2 = (char *)malloc(strlen(dt+1));
    		strcpy(data2,dt);
    
    		//Calcoli strani
    
    		int i = 0+1+2+5+4+12+432+543+5+43/14321/32113*210983;
    
    		//Fine calcoli strani
    
    		char conv[10];
    		int x;
    		x = rand() % 600;
    		if (x < 500)
    			x += (500 - i + rand() % x);
    		itoa(i,conv,0);
    
    		
    
    	printf("Dal periodo %d al periodo %d sono state fatte N. %d operazioni",data1,data2,conv);
    	system("pause");
    	return 0;
    
    }
    Ho usato l'itoa perchè non sapevo il formattatore per un intero.
    Comunque da vari errori.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  8. #8
    codice:
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include <time.h>
    #include <windows.h> //solo sotto windows, ci servono le API per inserire la pa
    char data1[11]; //servono al massimo 11 caratteri per una data (10 effettivi + il NULL)
    char data2[11];
    
    int main()
    {
    	int x; //in C la dichiarazione di tutte le variabili va all'inizio
    	int i;
    	srand(time(0));
    	printf("Inserire la data di inizio\n");
    	scanf("%10s",data1); //usiamo direttamente le due variabili dichiarate a livello di file (il formattatore delle stringhe è %s, non %d, inserendoci un 10 in mezzo dico alla scanf di non acquisire più di 10 caratteri per evitare buffer overflow)
    	printf("Inserire la data finale\n");
    	scanf("%10s",data2);
    	//Calcoli strani
    	i = 0+1+2+5+4+12+432+543+5+43/14321/32113*210983-rand()+time(0); //un tocco di insensatezza in più :)
    	//Fine calcoli strani
    	x = rand() % 600;
    	if (x < 500)
    		x += (500 - i + rand() % x);
    	printf("Dal periodo %s al periodo %s sono state fatte N. %s operazioni",data1,data2,conv);
    	system("pause");
    	return 0;
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    mmm l'aver messo 11 è ok (avevo messo 10 come numero casuale, non ho contato le cifre di una data)
    Inoltre hai dimenticato di convertire l'int in char alla fine (che alla fine può essere evitato sapendo il formattatore per stampare un intero )
    Il codice completo quindi è

    codice:
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include <time.h>
    #include <windows.h> //solo sotto windows, ci servono le API per inserire la pa
    char data1[11]; //servono al massimo 11 caratteri per una data (10 effettivi + il NULL)
    char data2[11];
    
    int main()
    {
    	int x; //in C la dichiarazione di tutte le variabili va all'inizio
    	int i;
    	srand(time(0));
    	printf("Inserire la data di inizio\n");
    	scanf("%10s",data1); //usiamo direttamente le due variabili dichiarate a livello di file (il formattatore delle stringhe è %s, non %d, inserendoci un 10 in mezzo dico alla scanf di non acquisire più di 10 caratteri per evitare buffer overflow)
    	printf("Inserire la data finale\n");
    	scanf("%10s",data2);
    	//Calcoli strani
    	i = 0+1+2+5+4+12+432+543+5+43/14321/32113*210983-rand()+time(0); //un tocco di insensatezza in più 
    	//Fine calcoli strani
    	x = rand() % 600;
    	if (x < 500)
    		x += (500 - i + rand() % x);
            char *conv = itoa(x,(char*)malloc(3),0);
    	printf("Dal periodo %s al periodo %s sono state fatte N. %s operazioni",data1,data2,conv);
    	system("pause");
            free(conv);
    	return 0;
    }
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    89
    Grazie mille ragazzi siete stati veramente gentili,ora gli do qualche aggiustata ed è perfetto.
    Grazie ancora..

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 © 2025 vBulletin Solutions, Inc. All rights reserved.