|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
06-07-2004, 16.41.56 | #16 |
Hero Member
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
|
___________________________________
...ad ogni alba sorgerà il tuo profumo |
06-07-2004, 17.12.07 | #17 |
Hero Member
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
|
ho sostituito lo scanf() con gets() per ovviare a degli errori ripetuti...
questo è l'ultimo che posto, se trov/o/iamo altri errori posterò il codice in pvt...
___________________________________
...ad ogni alba sorgerà il tuo profumo |
06-07-2004, 17.29.21 | #18 |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
Esordisco col dire che non mi è capitato, però te lo chiedo nel caso devesse.
Hai messo un controllo affinché in un'estrazione non ci siano 2 numeri uguali? |
06-07-2004, 18.07.04 | #19 |
Hero Member
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
|
si e se capita lo sostituisce...
___________________________________
...ad ogni alba sorgerà il tuo profumo |
06-07-2004, 18.09.54 | #20 |
Hero Member
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
|
già che ci siamo, cosa uso per concatenare 2 o più stringhe?
___________________________________
...ad ogni alba sorgerà il tuo profumo |
06-07-2004, 21.13.58 | #21 |
Gold Member
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
|
strcat dichiarata in <string.h>
Occhio sempre al prototipo: char *strcat(char *s1, const char *s2); Bye |
06-07-2004, 22.05.49 | #22 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Visto che le estrazioni possono andare da 1 a 999 puoi utilizzare questo piccolo programmino
Codice:
#include <stdio.h> #include <conio.h> #include <stdlib.h> int NumInput(int size){ char s[size],c; int i=0; while(i!=sizeof(s)){ c=getch(); //Invio if(c==13) break; //Solo numeri if(c>=48 && c<=57){ s[i]=c; i++; printf("%c",c); } //Backspace if(c==8){ if(i>0){ i--; printf("\b%c\b",32); s[i]=32; } } } return atoi(s); } main(void){ int a,b; printf("%s","Base:"); a=NumInput(3); printf("\n%s","Altezza:"); b=NumInput(3); printf("\n%s","Area rettangolo:"); printf("%i",a*b); getch(); } |
07-07-2004, 00.45.01 | #23 |
Hero Member
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
|
fatemi sapere se ho tralasciato qualcosa e/o ho fatto qualche cavolata, questo è il codice:
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> #include <string.h> #define SEI 6 void esegui(int); int controllo(int[], int); void ordina(int[], int); int soloNum(char *); int uguali = 0; main(){ int num = 0; int errore = 0; char numStr[512]; printf("\n\tCOMBINAZIONI RANDOM SUPER ENALOTTO\n\t\t\t\t by Ns-1\n\n"); do{ printf("\nInserisci numero estrazioni (0 per uscire): "); gets(numStr); num = soloNum(numStr); printf("\n"); if(num == 0) break; if(num > 0 && num <= 999) esegui(num); else{ if(num > 0){ printf("Numero massimo 999!\n\n"); system("PAUSE"); printf("\n"); errore++; esegui(999); } else{ printf(" COSA?"); errore++; } } printf("\n"); if(uguali > 0){ printf(" Numeri uguali e poi sostituiti: %d\n", uguali); uguali = 0; } }while(num != 0 && errore < 10); if(errore >= 10) printf("\n[10 Errori] - Sei troppo stupido per usare questo programma!\n\n\a"); return 0; } void esegui(int k){ int estr[SEI] = {0}; int i, x, ctrl = 0; int fileCtrl = 0; char nomeFile[512]; FILE *ptrFile; printf("Inserisci il nome del file su cui salvare le combinazioni: "); gets(nomeFile); printf("\n"); if ((ptrFile = fopen(nomeFile,"w")) == NULL) printf("\nIl file non puo' essere aperto!"); else fileCtrl = 1; srand(time(NULL)); for(x = 1; x <= k; x++){ printf(" Estrazione %-3d:", x); for(i = 0; i < SEI; i++){ estr[i] = 1 + (rand() % 90); if(i >= 1) ctrl = controllo(estr,i); if(ctrl == 0) ordina(estr, i); else --i; } for(i = 0; i < SEI; i++){ printf("%4d %s", estr[i], i <= SEI - 2 ? "|" : ""); if(fileCtrl == 1){ if( i == 0){ fprintf(ptrFile, " Combinazione %-3d:",x); } fprintf(ptrFile, " %4d %s", estr[i], i <= SEI - 2 ? "|" : "\n"); } } printf("\n"); } fclose(ptrFile); fileCtrl = 0; } int controllo(int array[], int pos){ int indSimul = pos - 1; int pippo; while(indSimul >= 0){ if(array[pos] == array[indSimul]){ indSimul = -1; pippo = 1; uguali++; } else{ if(indSimul == 0){ pippo = 0; } --indSimul; } } return pippo; } void ordina(int vett[], int k){ int ind = k - 1; int buf; for(; ind >= 0; ind--, k--){ if(vett[k] < vett[ind]){ buf = vett[ind]; vett[ind] = vett[k]; vett[k] = buf; } } } int soloNum(char *array){ int num = 0, index, esp, conv; int lungh = strlen(array) + 1; if(array[0] == '+') if(array[1] != '\0') array[0] = '0'; else num = -1, index = lungh-1; for(index = 0, esp = lungh-2; index < lungh-1; index++, esp--){ conv = array[index]-48; if(conv >= 0 && conv <= 9) num += (pow(10, esp) * conv); else{ index = lungh - 1; num = -1; } } return num; } mancano ancora un pò di cose, tipo il controllo del file esistente oppure no, etc...
___________________________________
...ad ogni alba sorgerà il tuo profumo |
07-07-2004, 00.45.44 | #24 |
Hero Member
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
|
scusate, ma non ha tenuto l'indent...
___________________________________
...ad ogni alba sorgerà il tuo profumo |
07-07-2004, 11.05.23 | #25 | |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
Quota:
(code) qui scrivi il codice con l'indentatura (/code) ovviamente dei mettere le parentesi quadre invece delle tonde |
|
07-07-2004, 11.25.52 | #26 |
Hero Member
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
|
Codice:
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> #include <string.h> #define SEI 6 void esegui(int); int controllo(int[], int); void ordina(int[], int); int soloNum(char *); int uguali = 0; main(){ int num = 0; int errore = 0; char numStr[512]; printf("\n\tCOMBINAZIONI RANDOM SUPER ENALOTTO\n\t\t\t\t by Ns-1\n\n"); do{ printf("\nInserisci numero estrazioni (0 per uscire): "); gets(numStr); num = soloNum(numStr); printf("\n"); if(num == 0) break; if(num > 0 && num <= 999) esegui(num); else{ if(num > 0){ printf("Numero massimo 999!\n\n"); system("PAUSE"); printf("\n"); errore++; esegui(999); } else{ printf(" COSA?"); errore++; } } printf("\n"); if(uguali > 0){ printf(" Numeri uguali e poi sostituiti: %d\n", uguali); uguali = 0; } }while(num != 0 && errore < 10); if(errore >= 10) printf("\n[10 Errori] - Sei troppo stupido per usare questo programma!\n\n\a"); return 0; } void esegui(int k){ int estr[SEI] = {0}; int i, x, ctrl = 0; int fileCtrl = 0; char nomeFile[512]; FILE *ptrFile; printf("Inserisci il nome del file su cui salvare le combinazioni: "); gets(nomeFile); printf("\n"); if ((ptrFile = fopen(nomeFile,"w")) == NULL) printf("\nIl file non puo' essere aperto!"); else fileCtrl = 1; srand(time(NULL)); for(x = 1; x <= k; x++){ printf(" Estrazione %-3d:", x); for(i = 0; i < SEI; i++){ estr[i] = 1 + (rand() % 90); if(i >= 1) ctrl = controllo(estr,i); if(ctrl == 0) ordina(estr, i); else --i; } for(i = 0; i < SEI; i++){ printf("%4d %s", estr[i], i <= SEI - 2 ? "|" : ""); if(fileCtrl == 1){ if( i == 0){ fprintf(ptrFile, " Combinazione %-3d:",x); } fprintf(ptrFile, " %4d %s", estr[i], i <= SEI - 2 ? "|" : "\n"); } } printf("\n"); } fclose(ptrFile); fileCtrl = 0; } int controllo(int array[], int pos){ int indSimul = pos - 1; int pippo; while(indSimul >= 0){ if(array[pos] == array[indSimul]){ indSimul = -1; pippo = 1; uguali++; } else{ if(indSimul == 0){ pippo = 0; } --indSimul; } } return pippo; } void ordina(int vett[], int k){ int ind = k - 1; int buf; for(; ind >= 0; ind--, k--){ if(vett[k] < vett[ind]){ buf = vett[ind]; vett[ind] = vett[k]; vett[k] = buf; } } } int soloNum(char *array){ int num = 0, index, esp, conv; int lungh = strlen(array) + 1; if(array[0] == '+') if(array[1] != '\0') array[0] = '0'; else num = -1, index = lungh-1; for(index = 0, esp = lungh-2; index < lungh-1; index++, esp--){ conv = array[index]-48; if(conv >= 0 && conv <= 9) num += (pow(10, esp) * conv); else{ index = lungh - 1; num = -1; } } return num; }
___________________________________
...ad ogni alba sorgerà il tuo profumo |
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
BOT mi sa che non è nulla di rassicurante | onairda | Sicurezza&Privacy | 10 | 26-09-2005 21.45.25 |
Nulla contro nulla o nessuno... però leggete questa mail che ho ricevuto..... | torakiki78 | Chiacchiere in libertà | 42 | 26-04-2005 23.07.54 |
NEC2510-A non legge più nulla | Thor | Hardware e Overclock | 8 | 16-03-2005 19.53.42 |
Non capisco.... | torakiki78 | Chiacchiere in libertà | 14 | 13-01-2005 00.31.17 |
connessione dal nulla | claudia1974 | Sicurezza&Privacy | 10 | 17-09-2003 13.07.29 |