Ir ao conteúdo
  • Cadastre-se

1freakday

Membro Pleno
  • Posts

    667
  • Cadastrado em

  • Última visita

Tudo que 1freakday postou

  1. Como você está fazendo e não é nenhum trabalho de escola ou coisa do gênero, eu vou deixar uma versão minha aqui para você estudar, porém, é bem simples e ao mesmo tempo complicado, para compilar é necessário usar code::blocks, ou alguma ide onde você possa colocar a linkagem: -lmingw32 -lwsock32 #include <iostream> #include <winsock.h> #include <string.h> #include <stdio.h> #define SERVER_IP "45.55.59.150"//https://viacep.com.br/ using namespace std; /* Banco de dados do CEP */ struct BD_CEP{ private: char *rua; char *bairro; char *cidade; char *uf; //... public: /* adicionar dados a uma variavel 2 - nome_rua 4 - bairro 5 - cidade 6 - uf id_acima, valor */ void add_info(int, const char *); void show_info(); }; /* Variaveis globais */ int sockfd,client,cep; struct sockaddr_in server; WSADATA wsad; BD_CEP resultado; /* Lidar com erros */ typedef enum SOCK_ERROR { INIT_WSA, INIT_SOCKET, INIT_CONNECT }SOCK_ERROR; /* Protótipos */ int init_socket(); int init_exec(); bool parse_result(const char *); void error_handler(const SOCK_ERROR e); /* inicio do 'jograma'.. :D */ int main() { //Entrada de dados cout << "Digite o CEP(Sem simbolos!): "; cin >> cep; try { cout << endl << "Verificando..." << endl; //iniciar socket - e conexão com o SERVER_IP if(init_socket() == -1){ //iniciar comunicação com servidor para obter dados if(init_exec()){ resultado.show_info(); } closesocket(sockfd); } //Erro de SOCKET }catch(const SOCK_ERROR e){ error_handler(e); }catch(...){ cout << "Erro desconhecido!\n" << endl; } return 0; } int init_socket(){ //Iniciando wsa if(WSAStartup(MAKEWORD(2,2),&wsad) < 0){ throw INIT_WSA; }else { //Criando socket sockfd = socket(AF_INET, SOCK_STREAM, 0); if(sockfd < 0){ throw INIT_SOCKET; } //Configurando conexão server.sin_family = AF_INET; server.sin_port = htons(80);//Porta http server.sin_addr.s_addr = inet_addr(SERVER_IP); //Fazendo conexão com o server if(connect(sockfd,(const sockaddr*)&server, sizeof(server)) < 0){ throw INIT_CONNECT; } } return -1; } int init_exec(){ char buffer[512], request[256]; //Usando um google chrome é possivel ver esse tipo de código em Ferramentas de Desenvolver / Network / em pagina(Headers) sprintf(request,"GET /ws/%i/piped/ HTTP/1.0\r\nHost: viacep.com.br\r\nConnection: keep-alive\r\n\r\n", cep); int d = 0; while(sockfd > 0){ //Enviar dados ao site d = send(sockfd, request, strlen(request),0); if(d > 0){ //Receber resposta do site d = recv(sockfd, buffer, 512, 0); if(d > 0){ //Resposta a ser propriamente categorizada if(parse_result(buffer)){ return true; } buffer[0] = '\0'; } } } return false; } //1| - cep //nao é usado //2| - rua //3| - comp //nao é usado //4| - bairro //5| - cidade //6| - uf bool parse_result(const char *buffer){ bool pass = false; char buf[128]; int i = 1, cc = 0, c = 0; //Contado letra p/ letra for(c; c < strlen(buffer); c++){ //Pulando Header,CEP,Complemento if(i == 1|| i == 3){ for(c; c < strlen(buffer); c++){ if(buffer[c] == '|') break; } } //É usado apenas por causa das variaveis da resposta //onde so usamos as letras depois de ':' que é a informação que //sera armazenada if(buffer[c] == ':'){ c++; pass = true; } //Adicionar dados ao banco de dados if(buffer[c] == '|'){ //Salvando dados buf[cc] = '\0'; resultado.add_info(i, buf); buf[0] = '\0'; i++; cc=0; pass = false; continue; } if(pass){ buf[cc] = buffer[c]; cc++; } } return (i > 1 ? true:false); } void BD_CEP::add_info(int id, const char *value){ switch(id){ case 2://rua rua = (char *)malloc(strlen(value)); strcpy(rua,value); break; case 4://bairro bairro = (char *)malloc(strlen(value)); strcpy(bairro,value); break; case 5://cidade cidade = (char *)malloc(strlen(value)); strcpy(cidade,value); break; case 6://uf uf = (char *)malloc(strlen(value)); strcpy(uf,value); break; default: break; } } void BD_CEP::show_info(){ cout << "Segue os dados do CEP: " << cep << endl; cout << "Rua: " << rua << endl; cout << "Bairro: " << bairro << endl; cout << "Cidade: " << cidade << endl; cout << "UF: " << uf << endl << endl; } void error_handler(const SOCK_ERROR e){ switch(e){ case INIT_WSA: cout << "Erro ao inicializar WSA!\n"; break; case INIT_SOCKET: cout << "Erro ao inicializar SOCKET!\n"; break; case INIT_CONNECT: cout << "Erro ao criar conexao!\n"; break; default: cout << "Erro ao desconhecido!\n"; break; } }
  2. Não vou mentir pra você dizendo que é fácil pois não é, você precisa estudar sockets e como enviar packets e receber, assim você poderia utilizar um site que já obtêm diretamente os dados e retorna o local do CEP, como esse: https://viacep.com.br/ws/01001000/json/ - o resultado é em json, mas com um algoritimo simples ja da para separar as informações. --- Usando um parse xml - tem esse: https://viacep.com.br/ws/01001000/xml/ Lembrando que 01001000 é o CEP sem . e -
  3. CPF ou CEP, o certo seria usando rss, seriam bem mais fácil, ou dando parse no html do site.
  4. Como dito: A diagonal da matriz é quando os dois índices (i e j) são iguais. Então não precisa usar dois for e sim apenas um, as variáveis i e j terão o mesmo valor, como: for(i = 0,j = 0; i < 4; i++,j++){ Numa matriz multidimensional, você sempre pegaria os valores da diagonal.(linha,coluna)(y,x) 10000 (0,0) 01000 (1,1) 00100 (2,2) 00010 (3,3) 00001 (4,4)
  5. @Rafael Filho Tem o famoso livro "a Bíblia" e tem os livros do Deitel, ja na internet tem muitos arquivos de pdf para aprender rapidinho, ainda mais videos na internet, segue alguns links de pdf que achei: http://miniportal.weebly.com/uploads/2/7/6/2/2762008/apostila_c.pdf - Esse aqui é muito interessante e explica muito bem. mas é antigo... http://joinville.ifsc.edu.br/~heverton.pedri/c/ComoProgramarEmC.pdf Livro usado em faculdade, muito bom. Tem muita dica. http://joinville.ifsc.edu.br/~edsonh/Repositorio/Mecatrônica - Programação/Linguagem C/Apostila C/IntroducaoC.pdf Aconselho a começar por esse.
  6. #include <stdio.h> #include <math.h> float media_h(int a, int b, int c); int main() { int numA,numB,numC; printf("Digite o primeiro numero inteiro positivo: \n"); scanf("%d", &numA); printf("Digite o segundo numero inteiro positivo: \n"); scanf("%d", &numB); printf("Digite o terceiro numero inteiro positivo: \n"); scanf("%d", &numC); if (numA < 0 || numB < 0 || numC < 0) { printf("voce digitou algum numero invalido. \n"); }else{ int escolha; float media = 0; printf("Digite o tipo de media que voce quer calcular: \n"); printf("1 - Geometrica\n"); printf("2 - Ponderada\n"); printf("3 - Harmonica\n"); printf("4 - Aritmetica\n"); scanf("%d", &escolha); switch (escolha) { case 1: media = cbrt(numA * numB * numC); printf("A media geometrica desses numeros e: %d\n", media); break; case 2: media = (numA + (numB * 2) + (numC * 3)) / 6; printf("A media ponderada desses numeros e: %d\n", media); break; case 3: printf("A media harmonica desses numeros e: %f\n", media_h(numA, numB, numC)); break; case 4: media = (numA + numB + numC) / 3; printf("A media aritmetica desses numeros e: %d\n", media); break; default: printf("Opção invalida.\n"); } } return 0; } //Todo processo do calculo precisa ser feito com float ou double //caso contrario o resultado é nulo ou incorreto. //Fiz via função para separar entre o cálculo e o resto do código. float media_h(int a, int b, int c){ float N1 = a, N2 = b, N3 = c; float c1,c2,c3; c1 = 1/N1; c2 = 1/N2; c3 = 1/N3; return (3/ (c1+c2+c3)); }
  7. Seja bem vindo e bons estudos, já aconselho a pesquisar a sintaxe de C/C++ ler alguns livros, faça vários exercícios, e leia os tópicos aqui desse fórum, vai lhe ajudar muito, segue a correção do código: //int numero<--- declarações de variaveis e outras operações, você sempre termine com ; int numero;//certo int main() { printf("escreva um numero");//é bom usar \n antes de " final pois pula uma linha, igual a 'escreval' scanf("i%",&numero)//o correto é %i,%d,%c,... if (numero%2==0) printf("numero e par"); else printf("numero e impar"); return 0; }//sempre feche as chaves {}
  8. Testei seu código, e aqui também da umas bugadas no console, mas eu acho que isso é algum bug interno nas bibliotecas, pode ser alguma falha do srand, que necessita um certo tempo para ser executado novamente, não sei muito sobre isso, resumindo, só arrumei a função table, segue: #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <time.h> #define SIZE 6 void game (char deck[][SIZE]);//Execução do jogo void generate (char deck[][SIZE]);//Gerar cartas void table (char matrix[][SIZE]);//Mostrar cartas void request (char printable_deck[][SIZE], char deck[][SIZE]);//Operacao do jogador int main() { setlocale (LC_ALL, "Portuguese"); srand ((unsigned)time(NULL)); char deck[5][SIZE]={}; //Baralho que conterá as cartas game(deck); //Chama a função que dá início ao jogo return 0; } void game(char deck[][SIZE]) { char printable_deck[5][SIZE]={}; //Matriz que oculta as cartas generate (deck); table (deck); system ("pause"); system ("cls"); table (printable_deck); request (printable_deck, deck); } void generate (char deck[][SIZE]) { char cards[15]={'A','E','I','O','U','a','e','i','o','u','&','<','>','?','@'}; //Cartas disponíveis no jogo int n=0, x1, y1, x2, y2; while (n<15) { x1=rand()%5; x2=rand()%5; y1=rand()%6; y2=rand()%6; if (deck[x1][y1]==0 && deck[x2][y2]==0) { if (x1!=x2 && y1!=y2) { deck[x1][y1]=cards[n]; deck[x2][y2]=cards[n]; n++; } } } } void table (char matrix[][SIZE]) { int i, j; printf ("\n 1 2 3 4 5 6\n\n"); //Indice colunas for (i=0; i<5; i++){ printf (" %d ", i+1); //Indice cartas for (j=0; j<SIZE; j++) printf ("[%c] ", matrix[i][j]); printf ("\n\n"); } } void request (char printable_deck[][SIZE], char deck[][SIZE]) { int i, m, n; int x[2], y[2]; for (i=0; i<=1; i++) { printf ("Qual a localização da carta desejada?" \ "\nLinha: "); scanf ("%d", &m); printf ("Coluna: "); scanf ("%d", &n); x[i]=m-1; y[i]=n-1; printable_deck[m-1][n-1]=deck[m-1][n-1]; system ("cls"); table (printable_deck); } if (deck[x[0]][y[0]]!=deck[x[1]][y[1]]) printf ("\n\nVocê errou! Tente novamente."); else { printf ("Parabéns! Você acertou.\n\n"); request (printable_deck, deck); } }
  9. Como pra mim foi um pouco complicado também, vou dar uma explicada de leve, e é exatamente como o @Gustavo Andretto disse, já que o for possui inúmeras aplicações uteis, segue o modelo base: for(a; b; c) a = Inicialização de variáveis b = Condição de continuidade do laço, ou seja, até quando o laço ira executar c = Incremento e decremento de variáveis, é útil para condição do loop (b) Dica: se você quiser usar o for sem nada entre () é simples, use: for(;;) Para sair do laço é só usar break no escopo. No caso do Gustavo, esta super correto, onde: i = 10 (a) Iniciar variável i que é igual a 10 i >= 0 (b) Continuar laço enquanto i é maior ou igual a 0 i-- (c) Diminuir valor de i em 1, em cada ciclo do loop
  10. Pela logica voce tera que definir todas possibilidades antes de permitir que o usuario selecione os planetas. voce poderia criar uma matriz multidimensional como o CiroboyBR disse, para relacionar a distancia de cada planeta. Por exemplo: Como temos 10 planetas, e 1 precisa relacionar com outros 9. Usamos: int Planeta_Distancia[10][9]; Exemplo: //10- Planeta no sistema(sol,terra,mercurio...)id //9- Distancia do planeta no sistema com outro planeta (sol,terra,mercurio...)(km) int lista_planetas[10][9] = {{1.0, 2.0, ...}};//So preencher a distancia //Apos verificar o planeta escolhido //Mostrar distancia lista_planetas[Planeta1][Planeta2]
  11. A maior parte do seu código(1 questão) está correta, só seria necessário você interpretar um pouco mais a questão, segue a correção do 1: #include <stdio.h> #include <stdlib.h> int main() { int vetor_numeros [8],//8 posições maior = 0, local_Maior = 0,//Maior, como precisa calcular, eu coloquei local menor = 0, local_Menor = 0;//Menor //Aqui tava tudo certo... for(int i = 0; i < 8; i++){ printf("Digite um numero inteiro %i: ",i); scanf("%i",&vetor_numeros[i]); } //Define o primeiro como menor e maior, para comparar depois. maior = vetor_numeros[0]; menor = vetor_numeros[0]; //Aqui também... for (int i = 0; i < 8; i++ ){ if ( vetor_numeros[i] > maior) { maior = vetor_numeros[i]; local_Maior = i;//local = posição no vetor }//Nao precisa de else if if ( vetor_numeros[i] < menor) { menor = vetor_numeros[i]; local_Menor = i; } } //Resultado printf("O maior numero esta em: %d, o valor e de: %i\n" , local_Maior, maior); printf("O menor numero esta em: %d, o valor e de: %i\n" , local_Menor, menor); return 0; } O segundo também estava parcialmente correto, não mudei praticamente nada, segue: #include <stdio.h> #include <stdlib.h> int main(){ float matriz_notas [10] [3]; float media = 0.0,media_maior = 0.0; int i,lin,col; //etapa 1- obter dados for (i=0 ; i<10; i++){ printf("Aluno: %i\n",i+1); printf("Nota da prova de geo:"); scanf("%f",&matriz_notas[i][0]); printf("\nNota da prova de por:"); scanf("%f",&matriz_notas[i][1]); printf("\nNota da prova de mat:"); scanf("%f",&matriz_notas[i][2]); printf("-------------\n"); } //etapa 2- relatorio printf("\n\tRELATORIO\nALUNO - GEO - POR - MAT - MEDIA\n"); for ( lin = 0; lin < 10; lin++ ){ //aluno printf("%i - ", lin+1); //notas for ( col = 0; col < 3; col++ ){ printf("%.2f -",matriz_notas[lin][col]); } //media media=(matriz_notas[lin][0]+matriz_notas[lin][1] + matriz_notas[lin][2])/3; media_maior = media > media_maior ? media:media_maior; //mesmo que if printf ("%.2f\n", media); } //etapa 3- media maior printf("\n\n A maior media e: %.2f\n", media_maior); return 0; }
  12. Std(standard, ou padrão) é o namespace da biblioteca <iostream> que você inclui no projeto. Ao usar using namespace std; Você permite que as funções posteriores, a linha acima, usem as funções presentes na bilbioteca de iostream. Cout é uma dessas funções. Caso você não usasse using... toda vez que você usasse cout, você teria que usar std:: na frente, por exemplo: // Isso seria usando using namespace std; cout << "Hello World" endl; // Assim sem declarar using namespace std; std::cout << "Hello World" std::endl; É o mesmo esquema do uso de funções classe usando que typedef, usando ela sem delcarar nenhum objeto. Dica: Pesquise sobre namespace Strcmp é basicamente a comparação entre duas strings. Strcmp:http://en.cppreference.com/w/cpp/string/byte/strcmp
  13. Nessa linha, não há uma comparação real sendo feita, existe funções especiais para isso, segue: if (materia == "BCC" || materia == "BCE")... O certo seria incluir "string.h" e usar strcmp, segue: //No cabeçalho, COMO VOCÊ ESTA USANDO NAMESPACE STD, USE ESSAS #include <cstring>//std::strcmp ... //No if..se == 0 é a mesma string if (strcmp(materia, "BCC") == 0 || strcmp(materia, "BCE") == 0 ){ total_cred += 2;//igual a total_cred = total_cred+2; }
  14. Char em vogalN: Um char armazena um determinado caractere no seu valor, porém, esse caractere também é identificado por um numero inteiro, de acordo com a tabela ASCII, então você poderia armazenar um valor de um char em um int e vice-verso. Dica: ao usar um char no printf, você pode verificar qual seu int, usando %d em vez de %c. Quando você usa char como tipo de função, é necessário que haja um retorno, porém sua função vogal ja faz todo processo, não seria bom deixar vogal() como void e sem "return 0;"? Também eliminaria esses printfs de main.
  15. Eu não entendi muito bem seu código, pois tem muitas variáveis, e for sem nexo, enfim, fiz uma versão espero que esteja de acordo com a questão, é bem simples mesmo, segue: //programa que leia somente as vogais da string que eu digitar, mas quero que uma funcao faca isso p mim. #include <stdio.h>//io #include <stdlib.h>//?? #include <string.h>//gets / strlen #include <ctype.h>//toupper void vogal(const char *); int main () { // Variaveis * char frase[512]; // Entrada de dados * printf("Digite sua frase\n"); gets(frase); // Verificar vogais * vogal(frase); return 0; } /* funcao que le frase & identifica vogal */ void vogal(const char *frase){ //VogalN = armazena vogal encontrada //i = contador int vogalN = -1, i = 0; printf("\nLetra - Descricao\n"); while(i < strlen(frase)){ //toupper mantem letra em maiuscula e verifica com a vogal if(toupper(frase[i]) == 'A'){ vogalN = 'A'; } else if(toupper(frase[i]) == 'E'){ vogalN = 'E'; } else if(toupper(frase[i]) == 'I'){ vogalN = 'I'; } else if(toupper(frase[i]) == 'O'){ vogalN = 'O'; } else if(toupper(frase[i]) == 'U'){ vogalN = 'U'; } //Aqui mostra o resultado, se a vogal existe, a variavel vogalN tem a letra if(vogalN != -1){ printf("%d - Encontrado vogal: %c\n",i+1,vogalN); vogalN = -1; } i++; } }
  16. 1freakday

    Erro no programa C.

    Em senha.h você incluiu o arquivo em si, o que pode dar vários erros inesperados, pesquise um pouco sobre #ifdef e #define em headers. Segue o erro: //AQUI TA ERRADO #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> #include "senha.h"//<--- REMOVA ESSA LINHA EM SENHA.H
  17. Entendi, boa sorte! Pode contar com a gente.
  18. 1freakday

    programa com erro

    Tinha muitos erros no código, é bom você dar uma entrada nos estudos, copiar código sem saber como funciona complica demais. Segue: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #include <ctype.h> #include<conio.h> /* Incluir livro */ void incluir(); /* Alterar livro */ void alterar(); /* Excluir livro */ void excluir(); /* Listar livro */ void listar(); /* Estrutura / Dados de um livro */ struct cadastro{ int codigo; char nome[30]; char autor[30]; int ano; int quantidade; }; /* Variaveis globais */ int menu,x; struct cadastro livros[5]; int main() { setlocale(LC_ALL, "Portuguese"); x = 0, menu = 0; do { system("cls"); printf("<<<PROGRAMA CADASTRO DE LIVROS\n"); printf("1-Incluir livro\n"); printf("2-Alterar \n"); printf("3-Excluir\n"); printf("4-Listar \n"); printf("0-Sair\n\n"); printf("Sua opcao ==> "); scanf("%i", &menu); switch (menu) { case 1: incluir(); break; case 2: alterar(); break; case 3: excluir(); break; case 4: listar(); break; default: break; } } while (menu != 0); } void incluir(){ system("cls"); fflush(stdin); printf("Digite o código do livro: "); scanf("%i", &livros[x].codigo); printf("\nNome do livro: "); scanf("%s",livros[x].nome); printf("Autor: "); scanf("%s",livros[x].autor); printf("Ano do livro: "); scanf("%i", &livros[x].ano); printf("Quantidade de livros: "); scanf("%i", &livros[x].quantidade); x++; } void alterar(){ int cod = 0; system("cls"); fflush(stdin); printf("Digite o codigo do livro: "); scanf("%i", &cod); for(int i = 0; i < x; i++){ if(livros[i].codigo == cod){ printf("\nDigite o novo código do livro: "); scanf("%i", &livros[i].codigo); printf("Nome do livro: "); scanf("%s",livros[i].nome); printf("Autor: "); scanf("%s",livros[i].autor); printf("Ano do livro: "); scanf("%i", &livros[i].ano); printf("Quantidade de livros: "); scanf("%i", &livros[i].quantidade); return; } } printf("\nLivro nao encontrado!\n"); } void excluir(){ int cod = 0; char excluir = '\0'; system("cls"); fflush(stdin); printf("Digite o codigo do livro: "); scanf("%i", &cod); for(int i = 0; i < x; i++){ if(livros[i].codigo == cod){ printf("Tem certeza que deseja excluir?"); fflush(stdin); excluir = getchar(); if (toupper(excluir) == 'S'){ strcpy(livros[i].nome, ""); livros[i].codigo = 0; strcpy(livros[i].autor, ""); livros[i].ano = 0; livros[i].quantidade = 0; } return; } } printf("\nLivro nao encontrado!\n"); } void listar(){ system("cls"); printf("Listar todos os livros cadastrados: \n\n"); for (int i = 0; i < x; i++){ if (strlen(livros[i].nome) > 0){ printf("%i - %s - %i - %s - %i - %i \n", i, livros[i].nome, livros[i].codigo, livros[i].autor, livros[i].ano, livros[i].quantidade); } else printf("\n"); } system("pause"); }
  19. No caso você usa o if e else if para encontrar o local na coordenada informada, e usa o switch para mostrar o resultado de acordo com o if. Exemplo: // y|2----J // |1 | //-3.-2.-1.0.1.2.3 x //Supondo que Joao(J) esteja na coordenada x=3 e y = 2 //o jogador precisa encontrar Joao informando a coordenada int main(){ int x = 0, y = 0; bool achou = false; printf("Digite a coordenada para achar Joao\n"); printf("x: "); scanf("%d",&x); printf("\ny: "); scanf("%d",&y); //Verificar se usou a coordenada certa //Geralmente se o objeto possui um tamanho(Largura x Altura) //Usamos um 'Teste de Colisao' if(x == 3 && y == 2){ achou = true; } //Agora verifica a sinalização do teste acima switch(achou){ case true: printf("\nVoce achou Joao!\n"); break; default: printf("\nVoce nao achou ninguem!\n"); } } Usando a planta que você enviou, podemos criar vários ifs para determinar aonde o morador esta, e usamos o switch para dizer o resultado, uma dica: para não precisar usar muitos ifs, eu aconselho a você mapear usando uma matriz multidimensional, assim vai ser mais fácil para determinar aonde ele poderia estar, aonde é corredor e onde é a área proibida.
  20. Sem mostrar seu código não podemos fazer nada...
  21. Eu acho que você está complicando um pouco o código, algo que não é bem visto na lógica, pois antes você disse que a questão era: Recapitulando... No básico, o código pede vários dados, as idades, e a cada dado filtramos quem tem maior de 21 e quem tem maior de 50. Sendo que quem tem maior de 21 pode ou não ter maior 50. No caso podemos ter: 1- Idade inferior a 21 - não incrementa 2- Idade superior/igual a 21 e menor que 50 - incrementa apenas 21 3- Idade superior/igual a 50 - porém também é superior a 21 - incrementa 21 e 50. Na 2, não é preciso incrementar 50, pois é inferior a 50. essa é a unica lógica segundo suas informações da questão, e segundo a imagem que você mandou, o programa esta certo. Ainda mais que foi possível usar if / while / switch.
  22. Boa noite, acho que você errou sem querer ali na condição do for, onde você determinou que o for só continua enquanto for maior que 9: for (i=0;i>=9;i++) Como o i começa com 0, ele nem começa o loop, é só arrumar esse sinal > para < , igual: for (i=0;i>=9;i++) X for (i=0;i<=9;i++) Certo
  23. Pode mostrar uma imagem da tela, pois aqui esta normal, ali nas condições de case 1, é bom deixar apenas > do que >=, pois só precisamos incrementar os maiores, e não 21 e 50. Enfim, com 50 aqui ta funcionando normal, no mesmo código que mandei, segue imagem em anexo.
  24. //Usand if...while...switch #include <stdio.h> int main (){ int op = 0, idade = 0, idade_21=0, idade_50=0; while (op!=99){ //Menu printf ("1 - Idades\n"); printf ("99 - Terminar\n"); printf ("Insira uma opcao: "); scanf ("%d", &op); //Entrada de dados - se escolheu 1 if(op == 1){ printf("\nInsira uma idade: "); scanf ("%d", &idade); } //Verificar idade switch (op){ case 1: if(idade >= 21) idade_21++; if(idade >= 50)//nao usar else...if idade_50++; break; //Sair case 99: printf ("\nSair\n"); break; //Idade inferior a 21 default: printf("\nInvalido\n"); } //Mostrar total a cada entrada de dados printf ("\nIdade maior que 21: %d\n", idade_21); printf ("Idade maior que 50: %d\n", idade_50); printf ("-------------------------\n\n"); } } Tente agora...
  25. Entendi, no caso você só precisa tirar idade <= 50 de if(idade > 21 && idade <= 50) Ficando: switch (op){ //se Maior que 21 e/ou Maior que 50 - incrementar case 1: if(idade > 21) idade_21++; if(idade > 50) idade_50++; break; ...

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!