Oppure

Loading
19/12/10 18:16
liogiu2
La domanda dice diciamo tutto..io sono nuovo in questo linguaggio e diciamo alla programmazione e dato che studio con la scuola e qui non si approfondisce troppo io invece vorrei approfondire
Questo è il programma che ho fatto:
//Tombola!!
//----------------------------------------------------------------------------------
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define tom 90
int main()
{
    int ne[tom],vet[tom]={0},num,k=0,j;
    srand(time(NULL));
    do
    {
        printf("per Estrarre un numero premi 1\n");
        printf(" per vedere i numeri estratti premi 2\n");
        printf(" per uscire premi 0\n");
        scanf("%d",&num);
        switch(num)
        {
                   case 1:  
                        qui:          
                        ne[k]=rand()%90+1;
                         for(j=0;j<k;j++)
                         {
                                         if(ne[k]==vet[j])
                                         {
                                                     goto qui;
                                                     ne[k]=0;
                                         }
                                         else
                                                     vet[k]=ne[k];
                         }
                         printf("Il %d numero estratto e'%d:\n",(k+1),ne[k]);
                         k++;
                         break;
                   case 2:
                        printf("ecco i numeri estratti:");
                        for(j=0;j<k;j++)
                                        printf("%d -- ",vet[j]);
                        break;
                   case 0:
                        k=k+99;
                        break;
        }
    }          
    while(k<tom);                                  
    
    
    system("pause");
    return 0;
    
}

Adesso mi potreste dare consigli per come fare a fare il tabellone di controllo dei numeri usciti e perchè quando clicco 2 come primo numero mi da 0 ??
grazie in anticipo:hail:
aaa
19/12/10 20:58
Alex
per fare il tabellone puoi stampare un pò alla volta i numeri estratti..
se ho ben capito dal codice il vettore "ne" contiene i numeri estratti.(correggimi se sbaglio)
quindi fai cosi:
for(int i=0;i<tom && ne[i]!=0;i++)
    printf("\t %d",ne[i]);

prima però devi cancellare lo schermo...
#include <system.h>

se sei su windows
system('cls');

se sei su unix
system('clear');

aaa
20/12/10 7:27
liogiu2
Grazie alex...solo che mi dice che la libreria non c'è e poi mi da errori su il codice per pulire lo schermo...:d
aaa
20/12/10 7:58
Linkinf22
Per il system("cls";); hai provato a mettere #include <iostream.h>?
Tra l' altro il cls mi sembra che non vada tra apici come fatto da Alex: system('cls');
Ma mi pare che vada tra doppi apici: system("cls";);

Prova prima a mettere i doppi apici, se ancora non funziona prova ad includere la libreria iostream.h
aaa
20/12/10 8:18
lorenzo
ragazzi, se dovete dare una risposta almeno non datela a casaccio.

1)la sintassi OVVIAMENTE è system("cls";); dico OVVIAMENTE perché cls è una stringa e le stringhe sono racchiuse da doppi apici. Basterebbe ragionare prima di scrivere.

2)l'header da includere è stdlib.h, che come saprete sicuramente non è una libreria...
Anche per questo, un minimo di ragionamento: anche non sapendo nulla della funzione system, il terzo risultato di google (con ricerca "system C";) dice nella prima riga il nome dell'header da includere.

3)iostream.h è un header del C++, non del C; inoltre, anche in ambito C++, oramai è deprecato in favore di <iostream> del namespace std
Ultima modifica effettuata da lorenzo 20/12/10 8:19
aaa
20/12/10 8:54
liogiu2
Abbiamo risolto il problema della pulizia dello schermo.
Ora come da titolo: come posso fare quando scrivo 2 a far vedere una vera e propria tabella con i numeri 1 alla 1° casella, 2 alla 2° casella e via dicendo?
e grazie mille per i consigli di prima :D
aaa
20/12/10 9:26
lorenzo
In questo modo:

int LCOL = 10;
	int j;
	int i = 0;
	int s;
	
	for(j = 0; j < 20; j++)
	{
		if(i % LCOL == 0)
		{
			printf("\n");
			for(s = 0; s < LCOL; s++)
				printf("-----");
			printf("\n");
		}
		printf(" %02d |", vett[j]);
		i++;
	}
	printf("\n");
	for(s = 0; s < LCOL; s++)
		printf("-----");
	printf("\n");


cambiando il valore di LCOL la tabella si adatterà in automatico
aaa
20/12/10 9:53
liogiu2
Grazie lorenzo..
Viene una cosa del genere??
//Tombola!!
//----------------------------------------------------------------------------------
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define tom 90
int main()
{
    int ne[tom],vet[tom]={0},num,k=0,j,i;
    srand(time(NULL));
    do
    {
        printf("per Estrarre un numero premi 1\n");
        printf(" per vedere i numeri estratti premi 2\n");
        printf(" per uscire premi 0\n");
        scanf("%d",&num);
        switch(num)
        {
                   case 1:  
                        qui:          
                        ne[k]=rand()%90+1;
                         for(j=0;j<k;j++)
                         {
                                         if(ne[k]==vet[j])
                                         {
                                                     goto qui;
                                                     ne[k]=0;
                                         }
                                         else
                                                     vet[k]=ne[k];
                         }
                         system("cls");                         
                         printf("Il %d numero estratto e'%d:\n",(k+1),ne[k]);
                         k++;
                         break;
                   case 2:
                        system("cls");
                        printf("ecco i numeri estratti:");
                        int LCOL = 90;
                        i=0;
                        int s;
                        for(j = 0; j < 20; j++)
                        {
                              if(i % LCOL == 0)
                              {
                                   printf("\n");
                                                for(s = 0; s < LCOL; s++)
                                                      printf("-----");
                              printf("\n");
                              }
                        printf(" %02d |", vet[j]);
                        i++;
                        }
                        printf("\n");
                        for(s = 0; s < LCOL; s++)
                        printf("-----");
                        printf("\n");
                        break;
                   case 0:
                        k=k+99;
                        break;
        }
    }          
    while(k<tom);                                  
    
    
    system("pause");
    return 0;
    
}

adesso come per magia mi da 2 errori
riga 59:jump to case label (questo prima nn me lo dava )
riga 39:crosses inititalization of 'int LCOL'
speriamo sia l'ultimo problema..
dato che ci sono ti chiedo un ultima cosa la funzione LCOL serve proprio per fare tabelle??
grazie ancora
aaa