Ir para conteúdo
Fórum Script Brasil

vangodp

Membros
  • Total de itens

    883
  • Registro em

  • Última visita

Tudo que vangodp postou

  1. vangodp

    Delay em c++

    sleep(5); //incluir unistd.h Sleep(5000); //incluir windows.h
  2. todos seus programas funcionam corretamente Aline. Não entendo que erros você esta tendo. =(
  3. Outro programa que me funcionou correto. não sei que problemas estas tendo, das pouca informação sobre o erro. você tem um arquivo txt com as palavras junto?
  4. seu programa compila corretamente. prove substituir soma +=saltos[num_salto]; por soma = soma + saltos[num_salto];. Não vejo error nenhum em seu código.
  5. vetor de caracteres e depois uma string não é a mesma coisa? Que linguagem é esse? Assim é difícil ajudar, dar más detalhes vai agilizar a ajuda.
  6. struct tm funciona tanto en c90 como em c++. http://www.cplusplus.com/reference/ctime/tm/ aqui tem muita info: http://en.cppreference.com/w/cpp/chrono/c e aqui: http://www.cplusplus.com/reference/ctime/ é através da estrutura time_t ou tm em si tiver c90 ativado.
  7. A combinação de teclas Ctrl+c = copiar e Ctrl+v pegar. Ctrl+x cortar. Selecione todo o texto e pegue aqui escolhendo esse botão chamado código que tem essa aparência: <>. Pegue o código aí num quadro que vai sair e tudo pronto. Ele vai ficar assim: #include <stdio.h> int main (void){ printf("Alo mundo"); return 0; }
  8. #include <stdio.h> int main (void){ int vet[] = {10,11,12,13,14,15,16,17,18,19,20}; int i; for (i = sizeof(vet)/sizeof(vet[0]); i >= 0; i--) { if (vet[i] % 2 == 0) printf ("%d\n", vet[i]); } return 0; } O int que serve de indice i no linguagem C tem que ser declarado fora do loop for, e não levar ponto e coma depois de for e antes da chave de abertura do corpo. Acima um exemplo valido.
  9. scanf lê até encontrar espaço' ', ou um tabulador'\t' e por ultimo um enter'\n'. Si escrevemos "alo mundo" e pulsar enter, no buffer a coisa fica assim: "'a','l','o',' ','m','u','n','d','o','\n'". Então nesse caso temos 2 coisas que "quebram" a frase, um espaço e um enter( ' ' e '\n' ). O \n ele é um char valido igual que outro qualquer, ele esta na tabela asc2, e tem um valor 10 em decimal e ele ainda tem mais uma qualidade diante de scanf, ele é o encargado de vaziar o buffer. Scanf vai acumulando letras até encontrar o scanf que é como si fosse um aviso de ir liberando tudo o que ta acumulado nas seguintes variáveis que ele vai encontrando, más seguindo as regras que antes falei sobre que ele vai liberando elas dependendo si encontra espaço, tabulador ou o mesmo enter. Então vamos ver exemplos si tenho char frase[100]; e char outraFrase[100]; e faço uma leitura com scanf ("%s", frase); e que nesse momento nós escrevemos "alo mundo" e pulsamos enter, o scanf vai por tudo isso no buffer, ficando "alo mundo\n", logo depois ele vai ver o \n e não vai descansar até que o buffer esteja vazia, tudo da seguinte forma: 1º ele vai pegar as letras até que encontra um espaço, tabulador ou enter, isso é começando pelo inicio de la primeira letra 'a' de "alo", ele vai checando letra a tetra ate encontrar os caracteres' ', '\t' e '\n', obviamente logo depois de 'o' de "alo" tem um espaço, então ai o buffer mete a tesoura e "corta" "alo" e o envia a primeira variavel compativel que encontrar que nesse caso é frase, agora o buffer tem "mundo\n", más scanf já não tem + variáveis compativeis com strings para meter o resto, isso não significa que a coisa vai parar ai, pois o buffer tem que ser vaziado completamente e de forma correta si ainda resta um string, tem que esperar outro scanf com outro string. Então mais abaixo queremos ler outra frase com scanf, ai temos scanf ("%s", outraFrase); que pedimos bunitinha outra frase, e para nossa surpresa descobrimos que o programa passou direto pelo scanf e nem leu nada, mas isso foi por que como o buffer ainda tinha lá "mundo\n" e esta ainda com o \n que esta dizendo que tudo saia do buffer, ele nem vai esperar, ele vai meter o mundo+\n tudo ai essa segunda variável por você. Então vamos ver uns exemplos: #include <stdio.h> int main(){ char f[100]; //frase char of[100]; //otra frase printf("Escreva uma frase: "); scanf("%s", f); printf("Escreva outra frase: "); scanf("%s", of); //<- vai pasar direto por aqui nem vai parar, más of vai ganhar "mundo" igualmente printf("\n\nfrase: %s\n", f); printf("Outra frase preenchida automaticamente: %s\n", of); printf("\nAdeus..\n"); return 0; } Depois de escrever alo mundo olhe como f ganha "alo" e of ganha "mundo". Outro exemplo com chars: Nesse exemplo escolha uma letra e pulse enter para ver como enter se mete em c2. Al imprimir c2 como inteiro podemos ver um valor de 10 em decimal que você pode buscar ele aqui: http://pt.wikipedia.org/wiki/ASCIIna parte de sinais não imprimíveis. #include <stdio.h> int main(){ char c1; char c2; printf("Escreva uma letra: "); scanf("%c", &c1); printf("Escreva outra letra: "); scanf("%c", &c2); //<- vai pasar direto por aqui nem vai parar, más c2 vai ganhar o caracter enter igualmente, pois ele tambem é uma letra. printf("\n\nLetra c1: %c\n", c1); printf("Letra c2: %d <- isso aqui é o enter imprimido como inteiro %%d, assim vc pode comparar ele na tabela asc2 e var que ele vale 10\n", c2); printf ("\n\nBusque em: http://pt.wikipedia.org/wiki/ASCII a tabela asc2, na parte de Sinais de controle(não- imprimiveis)\n"); return 0; } Existem letras que não são visíveis como letra, más todas são visíveis como inteiros. Que fique constância que isso não é um erro de scanf nem muito menos. O scanf trabalha de forma correta somos nós que falhamos sempre como programadores, e agora vou explicar com um exemplo: #include <stdio.h> int main(){ char nome[100]; char sobrenome[100]; printf("Escreva nome e sobrenome separados por espaço. Exemplo: \"Jose freitas\"\n"); scanf("%s %s", nome, sobrenome); printf("\n%s %s\n\n", nome, sobrenome); return 0; } Outro exemplo: #include <stdio.h> int main(){ int dia; int mes; int ano; printf("Escreva uma data composta de dia, mes e ano separadas por '/': exemplo\"24/07/2015\"\n"); scanf("%d/%d/%d", &dia, &mes, &ano); printf("dia: %d mes: %d ano: %d", dia, mes, ano); return 0; } Como podemos ver scanf é uma função muito útil uma vez aprendemos a trabalhar com ela. Como solucionar o problema? existem muitas formas de resolver esse problema. Podemos limpar buffer ou evitar que entre a ultima tecla pulsada ao buffer com %*c. vamos ver um exemplo: #include <stdio.h> int main(){ char c1; char c2; printf("Escreva uma letra: "); scanf("%c%*c", &c1); printf("Escreva outra letra: "); scanf("%c%*c", &c2); //<- agora aqui vai ler corretamente a causa de %*c evita que a ultima tecla pulsada entre al buffer printf("\n\nLetra c1: %c\n", c1); printf("Letra c2: %c \n", c2); return 0; } Como pode ver existe formas de evitar esse erro. Busque sobre como limpar o buffer entrada pero no use fflush com strings, existe más de una forma de faze-lo, investiga um poco. http://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/ Acho que já esta explicado, depende de você investigar sobre o tema de buffer, scanf, especificadores de formato tanto em printf como scanf, tabela asc2... etc etc. Sorte! PD: nesse mesmo forum encontrei um exemplo de por que você não deve usar fflush ainda que te digam que sim: https://www.scriptbrasil.com.br/forum/topic/164704-resolvendo-problemas-de-buffer/ Preste atenção ao comentário de axell13 que explica por que não usar fflush e sugere uma alternativa para limpar o buffer sem problemas.
  10. E o seu código? pega ele ai. Si não, como vamos saber si o que temos é más eficiente que o seu? -_-
  11. A sua pagina mostra como uma pagina atacante. Pega uma foto aqui ou texto por que não penso entrar no seu enlace.
  12. <script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script> Podemos entrar em contato por chat(skype ou outros) para que possa te ajudar no que você quiser, não tem problema. No skype eu chamo igual. Esa noite eu estaria aqui na net.
  13. Normalmente não se deve borrar dados de uma base de dados, basta com por alguma marca diante que diga que esse usuário esta excluído da lista, por exemplo: usuario ativo: nome sobrenome 999222333 nome@sobrenome.com Repare que tem um espaço em branco antes do nome. Nesse caso si não tem marca o usuario estaria ativo. Para indicar que ele esta excluído da lista basta por algo na frente como '*'. Ficando da seguinte forma: *nome sobrenome 999222333 nome@sobrenome.com Então si você tiver que listar os dados, esses com simbolo '*' adiante não se mostram. É convenhamos algo, não é bom borrar nenhum usuário já que pode servir para algo más adiante, para alguma especie de controle o consulta, algo assim. Então é só mudar a estrutura: typedef struct Agenda { char nome[50]; char fone[20]; char fonecelular[20]; char email[80]; }T_agenda; ... Por: typedef struct Agenda { char excluido; //incluir isso para armazenar o '*' char nome[50]; char fone[20]; char fonecelular[20]; char email[80]; }T_agenda; Também você esta passando algo muito más importante por alto no seu código. Quando você usar sizeof para ler o tamanho da estrutura para fwrite, a estrutura pode variar de um computador a outro. WTF!!. Isso acontece por causa do Byte align ou alinhamento de Bytes. você pode executar esse código que eu vou por a continuação e comprovar nele que eu tenho uma estrutura que contem um char+um int+um double, supondo que char tem um tamanho de 1Byte, um int 4Bytes e um double tem 8Bytes(pode ser diferente dependendo de vários fatores). Si somamos 1+4+8 é igual a 13Bytes não é? NAAAUMMM... É mais!!! Comprova. #include<stdio.h> #include<stdlib.h> struct _estrutura{ char c; int n; double d; }; int main(){ struct _estrutura s; printf ( "%d", sizeof( s ) ); return 0; } Percebemos que o valor é mais alto que a soma dos 3 juntos(pode imprimir os 3 por separados para comprovar). Isso porque? Pelo alinhamento de Bytes! Byte Align altera alguns dados inflando eles para optimizar o rendimento do programa. Qual o problema então, más optimizado melhor não é? Depende! Melhor é, o problema é que cada compilador faz sua optimização dependendo de vários fatores como arquitetura do PC, versão e ajustes de compilador e sei la más que regras. Vai ser bonito que você tire um fim de semana inteiro preparando um programa, e quando você chegar la na sala do profes e você se dar conta que a po**a do programa não funciona, e que você tirou um fim de semana inteiro fazendo a me**a do programa, e agora ele não funciona, e você nem sabe por que di***s isso acontece... hahah Busca no Google faça um favor: "Alinhamento de Bytes em C" ou C++ como quiser. Arranje um bom articulo para ler sobre isso e entender o que eu estou falando. E ainda tem mais... se você guardar essa estrutura num arquivo você esta desperdiçando memoria. Se o zé ruela se chamar nome: Zé sobrenome: Ruela, para o nome você reservou 50 caráteres, no arquivo você vai ver a coisa assim: "Zé :P Ruela"... Não é melhor si fosse assim: "Zé Ruela"??? pois isso você consegue melhor escrevendo o arquivo com fprintf e lendo com fscanf (Só si for texto plano!). Si for binário melhor seguir com fwrite e fread. Vou demostrar o que eu estou falando com um exemplo: #include <iostream> #include <cstdio> #include <cstring> using namespace std; struct Dados{ char excluido; char nome[50]; char sobrenome[50]; int edade; }; int main(){ FILE* f; f = fopen( "data.txt", "w+" ); if ( f == 0 ){ return 1; } //recheio de dados express XD Dados d[5] ={ { '\0', "Marco", "Antonio", 27}, { '*', "Maria", "Dolores", 67}, //Maria Dolores se va a gravar no arquivo más não se vai imprimir por que tem a marca * diante do seu nome. { '\0', "Edvan", "Menezes", 43}, { '\0', "Paulo", "Augusto", 28}, { '\0', "Lurdes","Aquilar", 33}, }; //gravando for ( int i = 0; i<5; i++ ){ fprintf( f, "%c %s %s %d\n",d[i].excluido, d[i].nome, d[i].sobrenome, d[i].edade ); } fclose(f); //ato seguinte é ler da mesma forma f = fopen( "data.txt", "r" ); //modo só de leitura if ( f == 0 ){ return 2; } //outra estrutura diferente para guardar desde o arquivo. Dados d2[5] = {0}; //lemos todas as linhas for ( int i = 0; i<5; i++ ){ fscanf( f, "%c %s %s %d%*c",&d2[i].excluido, d2[i].nome, d2[i].sobrenome, &d2[i].edade ); //só imprimimos o cliente si não tiver a marca '*' que indica que esta excluido da lista de clientes. if ( d2[i].excluido != '*' ){ printf("%c %s %s %d\n",d2[i].excluido, d2[i].nome, d2[i].sobrenome, d2[i].edade ); } } fclose(f); printf("Observe como maria dolores não esta incluida na lista devido a que tem a marca '*' de excluida."); getchar(); return 0; } Essa criatura aqui é melhor que essa outra a continuação: #include <iostream> #include <cstdio> #include <cstring> using namespace std; struct Dados{ char excluido; char nome[50]; char sobrenome[50]; int edade; }; int main(){ FILE* f; f = fopen( "data.txt", "w+" ); if ( f == 0 ){ return 1; } //recheio de dados express XD Dados d[5] ={ { '\0', "Marco", "Antonio", 27}, { '*', "Maria", "Dolores", 67}, //Maria Dolores se va a gravar no arquivo más não se vai imprimir por que tem a marca * diante do seu nome. { '\0', "Edvan", "Menezes", 43}, { '\0', "Paulo", "Augusto", 28}, { '\0', "Lurdes","Aquilar", 33}, }; //gravando for ( int i = 0; i<5; i++ ){ fwrite( &d[i], sizeof(struct Dados), 1, f); } fclose(f); //ato seguinte é ler da mesma forma f = fopen( "data.txt", "r" ); //modo só de leitura if ( f == 0 ){ return 2; } //outra estrutura diferente para guardar desde o arquivo. Dados d2[5] = {0}; //lemos todas as linhas for ( int i = 0; i<5; i++ ){ fread( &d2[i], sizeof(struct Dados), 1, f); //só imprimimos o cliente si não tiver a marca '*' que indica que esta excluido da lista de clientes. if ( d2[i].excluido != '*' ){ printf("%c %s %s %d\n",d2[i].excluido, d2[i].nome, d2[i].sobrenome, d2[i].edade ); } } fclose(f); getchar(); return 0; } Da primeira forma você se livra de 2 problemas de uma só tacada. 1ºSem problemas de (sorte) por causa do Byte Align, e 2º o arquivo fica muito melhor organizado. Veja a diferença entre os 2 na forma em que se organizam nos seus arquivos, um esta bem compacto é o outro desperdiça memoria em disco. Ainda tem muitos más problemas no seu código... É horrível que alguém ainda use getch no seu código... Uma função do já extinto Juracic Borland? Isso não favorece a criação de programas portáveis. O ideal mesmo é você trabalhar com streams em vez do sistema de arquivos de C. C++ tem melhores mecanismos para streams com fstream más é questao de gosto, uns são puristas, e outros não lhes importa misturar C com C++(Depende do seu chefe XD). Espero que tudo isso que eu falei te sirva de alguma coisa. Te desejo sorte. Se precisar de más ajuda aqui estamos para auxiliar na medida do possível.
  14. putc imprime chars e c é um inteiro, melhor você usar fprintf para escrever e fscanf para ler, ambos se fazem do mesmo modo fprintf(fp,"%d", c); escrever no arquivo e fscanf(fp,"%d", c); para ler.
  15. #include<stdlib.h> #include<stdio.h> #include<locale.h> int** aloca ( int LINHAS, int COLUNAS ); void liberaEspaco ( int** matriz, int LINHAS ); int main() { setlocale ( LC_ALL, "portuguese" ); int i = 0, j = 0, m, n; printf ( "Informe o número de linhas que deseja em sua matriz:" ); scanf ( "%d", &m ); printf ( "Informe o número de colunas que deseja em sua matriz:" ); scanf ( "%d", &n ); int** matriz = aloca ( /*linhas*/m, /*por colunas*/n ); for ( i = 0; i < m; i++ ) { for ( j = 0; j < n; j++ ) { printf ( "Matriz[%d][%d]:", i, j ); scanf ( "%d", &matriz[i][j] ); } } printf("\n"); for ( i = 0; i < m; i++ ) { for ( j = 0; j < n; j++ ) { printf ( "M[%d][%d]= %d\n", i, j, matriz[i][j] ); } printf("\n"); } liberaEspaco ( matriz, /*linhas*/m ); system ( "pause" ); return 0; } int** aloca ( int LINHAS, int COLUNAS ) { int i; int** matriz = ( int** ) malloc ( LINHAS*sizeof(int) ); for (i=0;i<LINHAS;i++){ matriz[i] = (int*) malloc (COLUNAS*sizeof(int)); } return matriz; } void liberaEspaco ( int** matriz, int LINHAS ) { int i; for (i=0;i<LINHAS;i++){ free ( matriz[i] ); } free(matriz); }
  16. Acho que a melhor forma seria usando memoria dinâmica: #include <stdio.h> #include <string.h> char* printnome(char nome[100]) { char* p = malloc( sizeof(char)*100+1 ); if(p == NULL) return NULL; sprintf(p, "Seja bem-vindo, %s!", nome ); return p; } int main() { char nome[100]; strcpy(nome, "CEAD"); char* p = printnome(nome); printf("%s", p); free(p); return 0; } :unsure:
  17. E por que não? Acho que você se esta enrolando muito, e já to começando a me enrolar eu também. :D É claro que você pode ler inteiros com: for ( i = 0; i < nExecucoes; i++ ) { scanf ( "%d", &programaNumero[i] ); } Qual é o problema?
  18. vangodp

    arquivo

    pelo menos diga o limguagem, que mania. //Para C #include <stdio.h> int main () { char nome[20] = "meuArquivo"; char tipo[5] = "txt"; char arquivo[20 + 5]; sprintf ( arquivo, "%s.%s", nome, tipo ); printf ("%s", arquivo); return 0; } //Para C++ #include<iostream> #include <sstream> using namespace std; int main() { stringstream ss; string nome = "meuAquivo"; string tipo = "txt"; ss << nome << "." << tipo; cout << ss.str() << endl; //tambem pode guardar em um string string arqivo = ss.str(); cout << arqivo << endl; //ou fazer: string outroArquivo = nome + '.' + tipo; cout << outroArquivo << endl; return 0 ; } Como ve.. C++ tem melhor gestao de cadenas de caracteres. Por isso é melhor você especificar o linguagem quando expor uma duvida. Agora é só você seguir o modelo e adaptar ele ao que você precisa, (scanf, cin...etc). Sorte! ;)
  19. Acho que é ( x > 30 ) || ( y < 500 ). E outra coisa que você não pode fazer é declarar variavel com 'Ç'. A variavel preço você pode definir como valor.
  20. você pode usar um gestor de cenas e tambem automatas de estado finito. Acho que o proprio é o gestor de cenas"scene manager"(muito utilizado en games), você imagina que tudo no seo jogo são cenas, a tela de apresentaçao, os menús, cada nivel do jogo etc etc. você precisa de um gestor que te ajude a mudar de cena en cada momento. você não falou a linguagen, más si fosse C++ você pode fazer uma clase chamada cena e logo depois outra que é gestor_de_cena que se encarga de mudar de nivel para você. Claro que falando parece facil, realmente a teoria é, o problema vem quando queremos transladar o conceito ao nosso jogo, aí o bicho pega. você podia nos contar más sobre ese jogo, subir o source dizer que bibliotecas utilizas, limguagem etc etc, assim podemos fazer más por você na medida do possivel, já que o tema de jogos é bastante complexo. só uns tips para você entender más ou menos. Todo jogo vai dentro de um gameloop que nada más é que um bucle ou sentença repetitiva(while). Esse loop se repete a uma certa velocidade, tem seus controles de eventos como podem ser captura de teclas, isso tudo pode mudar dependendo de un nivel a outro, como por exemplo a velocidade dos vehiculos, você pode fazer tudo isso dentro de um só loop, más nada te impede você fazer varios loops cada um para uma cena(intro, menú, fase1, fase2, creditos... ), e com um gestor que faça a transiçao de um loop a outro que contenha tudo o que você precisa, isso segue os principios do "divide e vencerás". Sorte.
  21. por muito vetor que seja esa casinha"--" tem que ter algum valor. Acho que para representar 'NADA' melhor si é o 0. então vamos imaginar que temos um vetor: int mes[42] = { 00,00,00,00,01,02,03, 04,05,06,07,08,09,10, 11,12,13,14,15,16,17, 18,19,20,21,22,23,24, 25,26,27,28,29,30,31, 00,00,00,00,00,00,00, }//representa o mes de janeiro tal como na sua foto É só imprimir "--" en vez de 0 usando alguns loops e un if: #include <stdio.h> int main () { int i = 0; int x = 0; int contador = 0; int mes[42] = { 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0 };//representa o mes de janeiro tal como na sua foto //For externo se encarga de proporcionar salto de linha para cada semana for ( i = 0; i < 6; i++ ){ //for interno imprime 7 dias por linha for ( x=0; x < 7; x++ ){ if ( mes[contador] != 0 ){ // <- isso é o que vc está buscando. Si nao é 0 imprime normal.... printf("%02d ", mes[contador] ); }else{ //...Si é 0 imprime o "--" no logar do 0 printf("-- "); } contador++; } printf("\n"); //salta depois de imprimir 7 dias } return 0; } Isso não? Sorte! :)
  22. En vez de limpar você pode ir tomando precauçao para que não entre \n al buffer: #include <stdio.h> int main() { int nPosicoes, maxCaixas; int nProgramas, maxComandos; int nExecucoes; int programaNumero [60]; char programa [9] [61]; char posicao [10] [11]; int i; scanf ( "%d%*c", &nPosicoes ); scanf ( "%d%*c", &maxCaixas ); scanf ( "%d%*c", &nProgramas ); scanf ( "%d%*c", &maxComandos ); scanf ( "%d%*c", &nExecucoes ); for ( i = 0; i < maxCaixas; i++ ) { scanf ( "%[^\n]%*c", posicao[i] ); } for ( i = 0; i < nExecucoes; i++ ) { scanf ( "%d%*c", &programaNumero[i] ); } for ( i = 0; i < nProgramas; i++ ) { scanf ( "%[^\n]%*c", programa[i] ); } getchar(); return 0; } O especificador %[^\n] le até encontrar \n, ignorando espaços tabuladores etc, ou seja que você pode ler "Hola Mundo" e ele vai guardar ambos Hola e mundo em um só string, coisa que você não pode fazer com um scanf normal já que scanf le só até encontrar um espaço, um tabulador ou o caracter enter(\n). Por outro lado %*c ignora o ultimo char não permitindo ele entrar ao buffer. então %[^\n]%*c le tudo menos o \n que é o ultimo char que você pulsa (\n tambem é um char) ;). Para simples inteiros %d por só %*c atraz de forma que fique %*d%*c(le um int e ignora o ultimo char que é o enter que você pulsa logo en seguida). Tambem funciona com %c%*c. Outra forma magica de evitar o enter é ponendo un espaço antes do"%c" de forma que fique" %c" dentro do scanf, ou seja scanf(" %c", letra); ou scanf(" %s", frase); //Note o espaço antes do %c e do %s. Un exemplo: #include <stdio.h> int main() { int n; char c1; printf("Entre um int: "); scanf("%d", &n); printf("Agora um char: "); scanf(" %c", &c1);//entre " e %c tem um espaço que ignora o anterior enter fazendo que funcione correctamente. Si tirar o espaço falha a leitura do char por causa do \n ao ler o int printf("Apesar de ter \n no buffer se imprime normalmente: %c", c1); getchar(); return 0; } Existe muitas formas de fazer. Sorte!
  23. Pode ser Assim mais fácil de entender: cout << ( ( num == 1 ) ? "Janeiro" : ( num == 2 ) ? "Fevereiro" : ( num == 3 ) ? "Março" : ( num == 4 ) ? "Abril" : ( num == 5 ) ? "Maio" : ( num == 6 ) ? "Junho" : ( num == 7 ) ? "Julho" : ( num == 8 ) ? "Agosto" : ( num == 9 ) ? "Setembro" : ( num == 10 ) ? "Outubro" : ( num == 11 ) ? "Novembro" : "Dezembro" ) << endl; Ou pode ser tudo em uma linha só :o : cout << ( ( num == 1 ) ? "Janeiro" : ( num == 2 ) ? "Fevereiro" : ( num == 3 ) ? "Março" : ( num == 4 ) ? "Abril" : ( num == 5 ) ? "Maio" : ( num == 6 ) ? "Junho" : ( num == 7 ) ? "Julho" : ( num == 8 ) ? "Agosto" : ( num == 9 ) ? "Setembro" : ( num == 10 ) ? "Outubro" : ( num == 11 ) ? "Novembro" : "Dezembro" ) << endl; Ou si você quiser agregar um aviso por si acaso a pessoa pulsar um numero que não corresponda a um dos 12 meses: cout << ( ( num == 1 ) ? "Janeiro" : ( num == 2 ) ? "Fevereiro" : ( num == 3 ) ? "Março" : ( num == 4 ) ? "Abril" : ( num == 5 ) ? "Maio" : ( num == 6 ) ? "Junho" : ( num == 7 ) ? "Julho" : ( num == 8 ) ? "Agosto" : ( num == 9 ) ? "Setembro" : ( num == 10 ) ? "Outubro" : ( num == 11 ) ? "Novembro" : ( num == 12 ) ? "Dezembro" : "Nao existe esse mes") << endl;
  24. Si você tiver um computador com pouca RAM união é uma boa forma de otimizar o consumo de memoria e por suposto deve ser aprendido e bem. ;)
×
×
  • Criar Novo...