spaho (Normal User)
Newbie
Messaggi: 7
Iscritto: 13/01/2010
|
il seguente prog. in c++ chiede all' utente di inserire nomi di alunni .. e con la funzione rand estrae qll ke devono essere inerrogati ..il problema e ke delle volte estrae gli stessi nomi ..volevo sapere se esiste un modo per estrarre nomi o numeri sempre diversi
ECCO LA SORGENTE IN C++:
Codice sorgente - presumibilmente C++ |
#include<iostream.h> #include<conio.h> #include<windows.h> #include<string.h> #include<stdlib.h> #include<stdio.h> #define k 5 main() { typedef char stringa[20]; stringa a[k]; int i,j; for(i=0;i<k;i++) { cout<<"inserisci il "<<i<<" nome :"; cin>>a[i]; } for(j=0;j<k;j++) { i=rand()%5; cout<<"\n"<<a[i]; Sleep(1000); } getch(); }
|
EDIT by HeDo: Leggi il regolamento, il codice si racchiude tra i tag code
Ultima modifica effettuata da HeDo il 21/01/2010 alle 2:59 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Poggi Marco (Member)
Guru
Messaggi: 969
Iscritto: 05/01/2010
|
Ultima modifica effettuata da Poggi Marco il 20/01/2010 alle 22:06 |
|
Lawliet (Normal User)
Expert
Messaggi: 386
Iscritto: 09/04/2009
|
Ma stai creando un programma in C o C++?
A che ti servono tutte quelle librerie!?
Comunque, ci sono un bel pò di errori nel tuo programmino.
A partire che manca la
Codice sorgente - presumibilmente C/C++ |
Sbagli a salvare la stringa nel vettore di stringhe cin>>a; dovrebbe essere così
Codice sorgente - presumibilmente Plain Text |
La sleep, io l'ho sempre scritta in così
Codice sorgente - presumibilmente Plain Text |
forse è lo stesso ma non ne sono sicuro, altra cosa: la
Codice sorgente - presumibilmente Plain Text |
che funzione è!? Che io sappia c'è solo la getc(); o getchar(); però se ti serve su windows per bloccare la schermata allora c'è la funzione:
Codice sorgente - presumibilmente Plain Text |
Ma già che ci sei perchè non usi le classi del C++? Ad esempio la classe string, invece di dichiarare array di char come in C. Ultima modifica effettuata da Lawliet il 21/01/2010 alle 0:36 |
|
gio97 (Ex-Member)
Guru
Messaggi: 715
Iscritto: 25/04/2009
|
Quoto Lawliet, è un po' un disastro: innanzitutto come include basta <iostream>, <cstdlib>, <string> TUTTI SENZA .H. Tu hai incluso conio, windows, stdio ma non hanno senso, perché non servono, stdio ancora peggio è di C, non C++, in C++ devi chiamarla cstdio, ma non farlo, perché in iostream ci sono tutte le classi che ti servono, poi hai incluso string, ma se poi usi un array di char, che si usa in C, non C++, non serve a nulla.
E una volta incluse le librerie necessarie: use namespace std. Poi quella dichiarazione typedef char stringa[20] non ha senso se poi fai una "stringa" di 5.
Stesso consiglio: un bel LIBRO di C++.
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
Postato originariamente da gio97:
...
E una volta incluse le librerie necessarie
|
Con gli #include non si "includono librerie" ma i file header ... e c'è differenza ...
Per questo basta anche un libro di C ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
spaho (Normal User)
Newbie
Messaggi: 7
Iscritto: 13/01/2010
|
Postato originariamente da gio97:
Quoto Lawliet, è un po' un disastro: innanzitutto come include basta <iostream>, <cstdlib>, <string> TUTTI SENZA .H. Tu hai incluso conio, windows, stdio ma non hanno senso, perché non servono, stdio ancora peggio è di C, non C++, in C++ devi chiamarla cstdio, ma non farlo, perché in iostream ci sono tutte le classi che ti servono, poi hai incluso string, ma se poi usi un array di char, che si usa in C, non C++, non serve a nulla.
E una volta incluse le librerie necessarie: use namespace std. Poi quella dichiarazione typedef char stringa[20] non ha senso se poi fai una "stringa" di 5.
Stesso consiglio: un bel LIBRO di C++. |
<iostream.h> serve x il cin e il cout (se nn ci credi prova)....<string.h> serve x usare la funzione typedef char (senza questa funzione e la libreia <string.h> con il c++ non puoi usare le stringhe)..il .h il mio prof. mi ha insegnato ke ci vuole ...(use name space std non e' indispensabile )....typedef char stringa[20] serve per dichiarare quanti caratteri si possono utilizzare ..e nn faccio una stringa di 5 ..(stringa a[k]..è un vettore )
un bel LIBRO di C++..serve a te ...e anke uno di educazione |
|
spaho (Normal User)
Newbie
Messaggi: 7
Iscritto: 13/01/2010
|
Postato originariamente da Lawliet:
Ma stai creando un programma in C o C++?
A che ti servono tutte quelle librerie!?
Comunque, ci sono un bel pò di errori nel tuo programmino.
A partire che manca la
Codice sorgente - presumibilmente C/C++ |
Sbagli a salvare la stringa nel vettore di stringhe cin>>a; dovrebbe essere così
Codice sorgente - presumibilmente Plain Text |
La sleep, io l'ho sempre scritta in così
Codice sorgente - presumibilmente Plain Text |
forse è lo stesso ma non ne sono sicuro, altra cosa: la
Codice sorgente - presumibilmente Plain Text |
che funzione è!? Che io sappia c'è solo la getc(); o getchar(); però se ti serve su windows per bloccare la schermata allora c'è la funzione:
Codice sorgente - presumibilmente Plain Text |
Ma già che ci sei perchè non usi le classi del C++? Ad esempio la classe string, invece di dichiarare array di char come in C. |
Nel mio programmino nn ci sono errori fai copia e incolla sul borland e avvialo... NN DA ALCUN PROBLEMA .
lo sleep va bene sia come dici te ke come ho fatto io .
Codice sorgente - presumibilmente Plain Text |
serve per non chiudere la finestra e funziona e bsiogna utilizzare la libreria
Codice sorgente - presumibilmente Plain Text |
|
|
spaho (Normal User)
Newbie
Messaggi: 7
Iscritto: 13/01/2010
|
Grazie Mille |
|