Ir ao conteúdo
  • Cadastre-se

devair1010

Membro Pleno
  • Posts

    6.290
  • Cadastrado em

  • Última visita

Tópicos solucionados

  1. O post de devair1010 em Do while com booleand em C++ parando quando encontrar os valores pré-definidos foi marcado como solução   
    @Genlath    para que o loop termine você precisa estipular uma condição ,  e você colocou uma o "childUpset" do tipo bool ,  então você pode usar um contador de quantos jogos você quer que sejam gerados ,  e ao atingir esse valor a variável childUpset receba o valor false ,  e seu código modificado ficou assim  :
    #include <stdio.h> #include <stdlib.h> #include <time.h> #include <fstream> #include <iostream> using namespace std; void ordenar_num(int num[6]) { int i, j, aux; for (i = 0; i < 6; i++) { for (j = i + 1; j <= 5; j++) { if (num[j] < num[i]) { aux = num[i]; num[i] = num[j]; num[j] = aux ; } } } printf("RESULTADO organizado --: "); for (i = 0; i < 6; i++) { printf("%2d - ", num[i]); } printf("\b\b \n"); } int main() { ofstream out ("teste.txt"); int i, j,num, numero[6]; int qtd,cont=0,flg; printf("a Qtd de cartoes "); scanf("%d",&qtd); printf("Gerando os bumeros\n\n"); srand(time(0)); bool childUpset = true; do { printf("Antes da Organizacao --: "); for (i = 0; i < 6; i++) { do { numero[i] = rand() % 60+1; /// gera numeros de 1 ate 60 int flg=0; /// marca como nenhum repetido for(j=0; j<6; j++) { if(numero[i] == numero[j]) /// verif o num gerado com todos no vetor { flg=1; /// marca como repetido break; /// sai desse loop for j } } }while( flg == 1); /// repete se houver algum repetido no vetor printf("%2d - ", numero[i]); } printf("\b\b \n\n%2d Jogo\n",cont+1); ordenar_num(numero); printf("\n"); cont += 1; /// incrementa o contador if(qtd == cont) /// se for igual a qtd pedida childUpset = false; /// marca como false }while(childUpset == true); /// condicao de sair do loop é false system("pause"); out.close(); return 0; }  
  2. O post de devair1010 em Do while com booleand em C++ parando quando encontrar os valores pré-definidos foi marcado como solução   
    @Genlath    para que o loop termine você precisa estipular uma condição ,  e você colocou uma o "childUpset" do tipo bool ,  então você pode usar um contador de quantos jogos você quer que sejam gerados ,  e ao atingir esse valor a variável childUpset receba o valor false ,  e seu código modificado ficou assim  :
    #include <stdio.h> #include <stdlib.h> #include <time.h> #include <fstream> #include <iostream> using namespace std; void ordenar_num(int num[6]) { int i, j, aux; for (i = 0; i < 6; i++) { for (j = i + 1; j <= 5; j++) { if (num[j] < num[i]) { aux = num[i]; num[i] = num[j]; num[j] = aux ; } } } printf("RESULTADO organizado --: "); for (i = 0; i < 6; i++) { printf("%2d - ", num[i]); } printf("\b\b \n"); } int main() { ofstream out ("teste.txt"); int i, j,num, numero[6]; int qtd,cont=0,flg; printf("a Qtd de cartoes "); scanf("%d",&qtd); printf("Gerando os bumeros\n\n"); srand(time(0)); bool childUpset = true; do { printf("Antes da Organizacao --: "); for (i = 0; i < 6; i++) { do { numero[i] = rand() % 60+1; /// gera numeros de 1 ate 60 int flg=0; /// marca como nenhum repetido for(j=0; j<6; j++) { if(numero[i] == numero[j]) /// verif o num gerado com todos no vetor { flg=1; /// marca como repetido break; /// sai desse loop for j } } }while( flg == 1); /// repete se houver algum repetido no vetor printf("%2d - ", numero[i]); } printf("\b\b \n\n%2d Jogo\n",cont+1); ordenar_num(numero); printf("\n"); cont += 1; /// incrementa o contador if(qtd == cont) /// se for igual a qtd pedida childUpset = false; /// marca como false }while(childUpset == true); /// condicao de sair do loop é false system("pause"); out.close(); return 0; }  
  3. O post de devair1010 em Criar novo arquivo .txt sem strings dentro de < > foi marcado como solução   
    @Estalha    você não colocou o exemplo das tag's ,  e esse seu código está lendo uma única linha do arquivo txt , quando o  que precisa é ler todo o arquivo letra por letra ,  então melhor usar o fgetc ,  e para gravar no segundo arquivo use mesmo o fprintf ,  e seu código modificado ficou assim  :
    #include<stdio.h> #include<locale.h> #include<string.h> int main () { setlocale(LC_ALL,"Portuguese"); /// esse setlocale não ajuda FILE *arquivo1 = fopen("Lista4Ex6_01.txt", "r"); FILE *arquivo2 = fopen("Lista4Ex6_02.txt", "w"); if( ! arquivo1 ) { printf("arquivo1 não encontrado !\n"); } if( ! arquivo2 ) { printf("erro ao criar o arquivo2\n"); } int flg = 0; char c; while( (c = fgetc(arquivo1)) != EOF ) /// lê uma letra de cada vez no arquivo até o fim dele { if( c == '<') /// se encontrar esse caract '<' flg = 1; /// marca como encontrado e inicio da tag if( flg == 0 ) /// se ainda não foi encontrado esse caract no arquivo { fprintf(arquivo2,"%c",c); /// grava o caract no segundo arquivo printf("%c ",c); /// escreve na tela o caract para vermos a saida } if( c == '>') /// se encontrar esse caract '>' flg = 0; /// marca como fim da tag } printf("fim da leitura\n"); fclose(arquivo1); /// fechar o arquivo fclose(arquivo2); /// fechar o arquivo return 0; /// retorna para o windows o valor zero }  
  4. O post de devair1010 em Como evitar o looping caso seja digitado sem querer um caractere foi marcado como solução   
    @lsnkesp      muito boa a solução suà ,  mas ,  ali ele vai fechar o programa e perderá o que foi Digitado ,  ! ,  seria melhor mostra aquela msg de erro e voltar a prosseguir com o programa novamente ,  e também usar fgets ao invés de scanf , e esse seu código com muitas modificações ficou assim :
    #include <stdio.h> #include <stdlib.h> #include <time.h> #include <ctype.h> #include <string.h> float ler_teclado(); int main () { int C[4], Q[4], repetido, N,x = 0,w; char aux[10]; float PrecoUnitario[4]; while( x < 4 ) { printf("Codigo do Produto\n"); N = ler_teclado(); /// lê o teclado até digitar apenas numeros printf("retornou %2d\n",N); /// ver se func certo ! int y = 0; while( y < x ) { if( N == C[y] ) { repetido = 1; break; } y = y + 1; } if( repetido == 1 ) { printf("Codigo %d repetido, tente novamente.\n", N); repetido = 0; x = x - 1; } else { C[x] = N; printf("Estoque Disp.\n"); Q[x] = ler_teclado(); /// lê o teclado até digitar apenas numeros printf("retornou %2d\n",N); /// ver se func certo ! printf("Preco Unitario do Produto\n"); PrecoUnitario[x] = ler_teclado(); /// lê o teclado até digitar apenas numeros printf("%.2f\n",PrecoUnitario[x]); /// ver se func certo ! } x = x + 1; } } float ler_teclado() { int w; float N; char aux[10]; label : fflush(stdin); fgets(aux,10,stdin); /// fgets pega a string + '\n' + '\0' for(w=0;aux[w] !='\n'; w++) { if( ! isdigit(aux[w]) && aux[w] != '.' ) { printf("Errado, digitou um caractere (Digite apenas n. inteiros).\n"); goto label; } } N = atof(aux); /// converte string para float printf("atoi aux = %.2f\n",N); return N; }  
  5. O post de devair1010 em Como aceitar apenas um tipo de variavel foi marcado como solução   
    @Noob752   melhor pegar os dados como string , e verificar se contém apenas dígitos numéricos , e depois conveter para int assim:
    string str = "0123"; // composta apenas com digitos de 0 a 9 ou qualquer coisa int i = 0; // inicializa variável que receberá o valor inteiro // Tenta converter str para int (com saída na variável i) if (Int32.TryParse(str, out i)) // out é saída q vai na variaveL int { Console.WriteLine("A str convertida " + i);// Se conseguiu converter , imprime o valor da variável } else { Console.Write("Erro ao converter '"); // mostra uma Mensagme de erro Console.WriteLine(str + "' para inteiro.");// ou outra açao qq }  
  6. O post de devair1010 em Contar Números determinados em Matriz foi marcado como solução   
    @zjoãozinho, nesse seu código não tem uma segunda Matriz onde armazenar os números, e precisa de um contador para acumular o total de números maior que trinta, e no final seria melhor apresentar as duas matrizes, para conferir:
     
    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main()  {     int i, j, A[6][4], b[6][4] = {0};     int contador = 0;     int c = 0, L = 0;     for (i = 0; i < 6; i++)     {         for (j = 0; j < 4; j++)         {             printf("informe o valor para A[%d][%d]= ", i, j);             scanf("%d", &A[i][j]);             if (A[i][j] > 30)             {                 contador++;             }             if (A[i][j] != 30 && A[i][j] != -30)        // diferente de 30             {                 b[L][c] = A[i][j];                      // armazena na segunda matriz                 c++;                 if (c > 3)                 {                     c = 0;                     L++;                 }             }         }     }     printf("\ntotal de maiores de 30 eh %d\n\n",contador);     printf("  Matriz A  OriginaL      Matriz B com nenhum numero 30\n\n");     for (i = 0; i < 6; i++)      {         for (j = 0; j < 4; j++)             printf("%4d", A[i][j]);         printf("   <------>   ");         for (j = 0; j < 4; j++)             if(b[i][j] )printf("%4d", b[i][j]);         printf("\n");     }     return 0; }  
  7. O post de devair1010 em Contar Números determinados em Matriz foi marcado como solução   
    @zjoãozinho, nesse seu código não tem uma segunda Matriz onde armazenar os números, e precisa de um contador para acumular o total de números maior que trinta, e no final seria melhor apresentar as duas matrizes, para conferir:
     
    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main()  {     int i, j, A[6][4], b[6][4] = {0};     int contador = 0;     int c = 0, L = 0;     for (i = 0; i < 6; i++)     {         for (j = 0; j < 4; j++)         {             printf("informe o valor para A[%d][%d]= ", i, j);             scanf("%d", &A[i][j]);             if (A[i][j] > 30)             {                 contador++;             }             if (A[i][j] != 30 && A[i][j] != -30)        // diferente de 30             {                 b[L][c] = A[i][j];                      // armazena na segunda matriz                 c++;                 if (c > 3)                 {                     c = 0;                     L++;                 }             }         }     }     printf("\ntotal de maiores de 30 eh %d\n\n",contador);     printf("  Matriz A  OriginaL      Matriz B com nenhum numero 30\n\n");     for (i = 0; i < 6; i++)      {         for (j = 0; j < 4; j++)             printf("%4d", A[i][j]);         printf("   <------>   ");         for (j = 0; j < 4; j++)             if(b[i][j] )printf("%4d", b[i][j]);         printf("\n");     }     return 0; }  
  8. O post de devair1010 em Contar Números determinados em Matriz foi marcado como solução   
    @zjoãozinho, nesse seu código não tem uma segunda Matriz onde armazenar os números, e precisa de um contador para acumular o total de números maior que trinta, e no final seria melhor apresentar as duas matrizes, para conferir:
     
    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main()  {     int i, j, A[6][4], b[6][4] = {0};     int contador = 0;     int c = 0, L = 0;     for (i = 0; i < 6; i++)     {         for (j = 0; j < 4; j++)         {             printf("informe o valor para A[%d][%d]= ", i, j);             scanf("%d", &A[i][j]);             if (A[i][j] > 30)             {                 contador++;             }             if (A[i][j] != 30 && A[i][j] != -30)        // diferente de 30             {                 b[L][c] = A[i][j];                      // armazena na segunda matriz                 c++;                 if (c > 3)                 {                     c = 0;                     L++;                 }             }         }     }     printf("\ntotal de maiores de 30 eh %d\n\n",contador);     printf("  Matriz A  OriginaL      Matriz B com nenhum numero 30\n\n");     for (i = 0; i < 6; i++)      {         for (j = 0; j < 4; j++)             printf("%4d", A[i][j]);         printf("   <------>   ");         for (j = 0; j < 4; j++)             if(b[i][j] )printf("%4d", b[i][j]);         printf("\n");     }     return 0; }  
  9. O post de devair1010 em Contar Números determinados em Matriz foi marcado como solução   
    @zjoãozinho, nesse seu código não tem uma segunda Matriz onde armazenar os números, e precisa de um contador para acumular o total de números maior que trinta, e no final seria melhor apresentar as duas matrizes, para conferir:
     
    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main()  {     int i, j, A[6][4], b[6][4] = {0};     int contador = 0;     int c = 0, L = 0;     for (i = 0; i < 6; i++)     {         for (j = 0; j < 4; j++)         {             printf("informe o valor para A[%d][%d]= ", i, j);             scanf("%d", &A[i][j]);             if (A[i][j] > 30)             {                 contador++;             }             if (A[i][j] != 30 && A[i][j] != -30)        // diferente de 30             {                 b[L][c] = A[i][j];                      // armazena na segunda matriz                 c++;                 if (c > 3)                 {                     c = 0;                     L++;                 }             }         }     }     printf("\ntotal de maiores de 30 eh %d\n\n",contador);     printf("  Matriz A  OriginaL      Matriz B com nenhum numero 30\n\n");     for (i = 0; i < 6; i++)      {         for (j = 0; j < 4; j++)             printf("%4d", A[i][j]);         printf("   <------>   ");         for (j = 0; j < 4; j++)             if(b[i][j] )printf("%4d", b[i][j]);         printf("\n");     }     return 0; }  
  10. O post de devair1010 em "Esperava uma expressão do tipo lógico" foi marcado como solução   
    @Pedrusto   nessa Linha
    se (IMC >= 18.5) e (IMC < 25) entao você colocou vírgula   ','  e seria ponto '.'
    e faltou um entao nessa lnha 
    se IMC >= 25 entao  
  11. O post de devair1010 em Erro na hora de imprimir os resultados. foi marcado como solução   
    @Nikollas G. Ohta     a identação do código facilita a detecção de erros , e a sua variável  "somaC"  vai acumulando os valores de todas as colunas assim no final ele contém esses valores somados uns com os outros ,  então uma solução seria usar um vetor que armazenasse os valores de cada coluna em cada uma de suas 5 posições , ou escrever os valores lá na hora que faz a leitura , e seu código modificado poderia ser assim  :
    Program SomaCol_ValDiagonal; var mat : array[1..5,1..5] of integer; vet : array[1..5] of integer; somaC : array[1..5] of integer; soma,l,c : integer; // Linha e coluna de 1 até 5 begin soma:=0; for l := 1 to 5 do begin for c := 1 to 5 do begin // Usuário insere valor para a coluna write('Digite um valor para a ',l,'ª linha e ',c,'ª coluna: '); readln(mat[l,c]); // lê o teclado e insere nas posições da matriz somaC[l] := somaC[l] + ( mat[ l,c ] ); // acumula o total na posição de somaC if l = c then // Se a linha for igual a coluna, é um // cenário propício a formar a diagonal //begin // esse bigin estava fora de lugar e // nem precisa dele , pois tem apenas uma linha vet[l] := mat[ l,c ]; // armazena o valor da diagonal //end; end; writeln; end; // Imprime os valores da diagonal for l := 1 to 5 do begin soma := soma + vet[ l ]; writeln('Os elementos na diagonal são: ',vet[ l ] ); end; writeln; // Imprime a soma das colunas individualmente (corrigir) for c := 1 to 5 do begin // escreve os valores totais de cada coluna writeln('A soma da ',c,'ª coluna resulta em: ',somaC[ c ]); end; readkey; end.  
  12. O post de devair1010 em Pesquisar se o nome existe, usando struct foi marcado como solução   
    @Visitante05052      dentro de struct não precisa usar vetores ou matrizes , pois será criado esse vetor para a struct toda ,
    #include <string.h> typedef struct { char nome[10][20]; // dentro da struct não precisa de usar // nem matriz nem vetor char name[30]; // poderia ser assim , uma string simples int idade; }TFuncionario; int main() // dentra da função int main TFuncionario f[100]; // um vetor para struct com 100 posições strcpy(f[0].nome[0],"qualquer um"); // insere um nome printf("nome do funcionario "); fgets(f[0].nome[0], 20,stdin); f[0].nome[0][strlen(f[0].nome[0]) - 1] = '\0'; // remover o newline pego pelo fgets if(strcmp(f[0].nome[0] , func ) == 0 ) // compara e se for 0 as duas são iguais printf("funcionario %s encontrado .",f[0].nome[0]); // escreve o nome  
  13. O post de devair1010 em Pesquisar se o nome existe, usando struct foi marcado como solução   
    @Visitante05052      dentro de struct não precisa usar vetores ou matrizes , pois será criado esse vetor para a struct toda ,
    #include <string.h> typedef struct { char nome[10][20]; // dentro da struct não precisa de usar // nem matriz nem vetor char name[30]; // poderia ser assim , uma string simples int idade; }TFuncionario; int main() // dentra da função int main TFuncionario f[100]; // um vetor para struct com 100 posições strcpy(f[0].nome[0],"qualquer um"); // insere um nome printf("nome do funcionario "); fgets(f[0].nome[0], 20,stdin); f[0].nome[0][strlen(f[0].nome[0]) - 1] = '\0'; // remover o newline pego pelo fgets if(strcmp(f[0].nome[0] , func ) == 0 ) // compara e se for 0 as duas são iguais printf("funcionario %s encontrado .",f[0].nome[0]); // escreve o nome  
  14. O post de devair1010 em Pesquisar se o nome existe, usando struct foi marcado como solução   
    @Visitante05052      dentro de struct não precisa usar vetores ou matrizes , pois será criado esse vetor para a struct toda ,
    #include <string.h> typedef struct { char nome[10][20]; // dentro da struct não precisa de usar // nem matriz nem vetor char name[30]; // poderia ser assim , uma string simples int idade; }TFuncionario; int main() // dentra da função int main TFuncionario f[100]; // um vetor para struct com 100 posições strcpy(f[0].nome[0],"qualquer um"); // insere um nome printf("nome do funcionario "); fgets(f[0].nome[0], 20,stdin); f[0].nome[0][strlen(f[0].nome[0]) - 1] = '\0'; // remover o newline pego pelo fgets if(strcmp(f[0].nome[0] , func ) == 0 ) // compara e se for 0 as duas são iguais printf("funcionario %s encontrado .",f[0].nome[0]); // escreve o nome  
  15. O post de devair1010 em Exercicio Matriz em C foi marcado como solução   
    @Gustavo Tavares Isobe     você estabeleceu o valor de M e N  fixados em 100 , mas o enunciado diz para pegar o valor de M e N ,  do teclado , e para isso você pode usar fgets, ou também scanf ,  e depois faça a validação para ver se estão na faixa apropriada pedida , que é de 1 até 100 ,  e depois criar a matriz usando esses valores como linha e coluna ,  senão repetir novamente essa parte ,  e seu código com algumas modificações ficaria assim :
    #include <stdio.h> /*#define M 100 //numero maximo de linhas /// não precisam desses define #define N 100 //numero maximo de colunas*/ int main () { int M,N; printf("numero de colunas "); scanf("%d", & M); printf("numero de linhas "); scanf("%d", & N); int i, j, matriz[M][N]; /// { para que essa abre cheves aqui ? , não precisam for (i=0 ; i<M ; i++) { for (j=0 ; j<N ; j++) { matriz[i][j] = rand() % 1000; /// aqui só para testar , depois remover /*scanf ("%d", &matriz[i][j]);*/ printf ("%d\t", matriz[i][j]); } } /// } para que essa fecha cheves aqui ? , não precisam return 0; }  
  16. O post de devair1010 em Exercicio Matriz em C foi marcado como solução   
    @Gustavo Tavares Isobe     você estabeleceu o valor de M e N  fixados em 100 , mas o enunciado diz para pegar o valor de M e N ,  do teclado , e para isso você pode usar fgets, ou também scanf ,  e depois faça a validação para ver se estão na faixa apropriada pedida , que é de 1 até 100 ,  e depois criar a matriz usando esses valores como linha e coluna ,  senão repetir novamente essa parte ,  e seu código com algumas modificações ficaria assim :
    #include <stdio.h> /*#define M 100 //numero maximo de linhas /// não precisam desses define #define N 100 //numero maximo de colunas*/ int main () { int M,N; printf("numero de colunas "); scanf("%d", & M); printf("numero de linhas "); scanf("%d", & N); int i, j, matriz[M][N]; /// { para que essa abre cheves aqui ? , não precisam for (i=0 ; i<M ; i++) { for (j=0 ; j<N ; j++) { matriz[i][j] = rand() % 1000; /// aqui só para testar , depois remover /*scanf ("%d", &matriz[i][j]);*/ printf ("%d\t", matriz[i][j]); } } /// } para que essa fecha cheves aqui ? , não precisam return 0; }  
  17. O post de devair1010 em Como calcular progressão aritimética? foi marcado como solução   
    @PROG105      será que o que você Quer fazer seja assim  :
    #include <stdio.h> void pausar( float ); int main(void) { int soma = 0,x; for ( x = 0;; x += 1) { int contador = x + x + x + 1; /// o contador armazena o valor da soma printf("%3d%c = %3d\n" , x+1,166,contador); /// aqui vai escrever o valor do /// contador todas as vezes que o loop for se repetir pausar ( 0.51 ); /// esperar por um tempo if (contador > 148) { printf("\nSomah ----> %3d\n", soma); printf("Contador -> %3d", contador); /// aqui dentro do if , só vai escrever o valor do contador QuanDo /// o contador for maior que 148 break; /// sair desse Loop For } soma += contador; } printf("\n\n\n"); return 32768; /// E retornaR para o Windows } void pausar( float a) { int i,j; for(i=0; i<a*60000; i++) for(j=0; j<a*6000; j++); }  
  18. O post de devair1010 em Exercicio Matriz em C foi marcado como solução   
    @Gustavo Tavares Isobe   existem muitos modos de se fazer esse exercício ,  e você está preenchendo a matriz manualmente ,  e assim também vai funcionar , mas não é o que pede o enunciado ,  que diz para gerar a matriz , e então uma outra solução poderia ser assim :
    #include <stdio.h> #include <Windows.h> #define MAX 6 #define h GetStdHandle(STD_OUTPUT_HANDLE) void cor( int,int ); // 16 cores de zero até 15; gotoxy(int,int); // move o cursor para a coluna e linha espevificadas int main() { int antes, antis; CONSOLE_SCREEN_BUFFER_INFO c; if(GetConsoleScreenBufferInfo(h, &c)) { antes = ( c.wAttributes & 0xFF) & 0x0F; antis = ((c.wAttributes & 0xFF) >> 4) & 0x0F; } printf("Cor dAs letras AntEs --= %d\n\\ \rCoR dO fUndo AntiS --= %d\n", antes,antis ); int i, j; int MAT[MAX][MAX]={0}; int num; int coluna = 35, linha = 5; printf("\n\n\n"); for(i=0; i<MAX; i++) { gotoxy(coluna, linha); linha++; for(j=0; j<MAX; j++) { num = 1; cor(12,14); if( (i>0 && i<MAX-1)&& (j>0 && j<MAX-1 )){cor( 0,11);num = 2;} if((i>1 && i<MAX-2) && (j>1 && j<MAX-2) ){cor(15,12);num = 3;} MAT[i][j] = num; Sleep(400); printf("%d ",MAT[i][j]); } printf("\n"); } printf("\n\n\n Tecle Enter . . . ! \n"); cor(antes,antis); getchar(); return 0; } void cor(int letras,int fundo ) { SetConsoleTextAttribute(h,letras + (fundo << 4)); } gotoxy(int coluna,int linha) { COORD c; c.X = coluna; c.Y = linha; SetConsoleCursorPosition(h,c); }  
  19. O post de devair1010 em Exercicio Matriz em C foi marcado como solução   
    @Gustavo Tavares Isobe   existem muitos modos de se fazer esse exercício ,  e você está preenchendo a matriz manualmente ,  e assim também vai funcionar , mas não é o que pede o enunciado ,  que diz para gerar a matriz , e então uma outra solução poderia ser assim :
    #include <stdio.h> #include <Windows.h> #define MAX 6 #define h GetStdHandle(STD_OUTPUT_HANDLE) void cor( int,int ); // 16 cores de zero até 15; gotoxy(int,int); // move o cursor para a coluna e linha espevificadas int main() { int antes, antis; CONSOLE_SCREEN_BUFFER_INFO c; if(GetConsoleScreenBufferInfo(h, &c)) { antes = ( c.wAttributes & 0xFF) & 0x0F; antis = ((c.wAttributes & 0xFF) >> 4) & 0x0F; } printf("Cor dAs letras AntEs --= %d\n\\ \rCoR dO fUndo AntiS --= %d\n", antes,antis ); int i, j; int MAT[MAX][MAX]={0}; int num; int coluna = 35, linha = 5; printf("\n\n\n"); for(i=0; i<MAX; i++) { gotoxy(coluna, linha); linha++; for(j=0; j<MAX; j++) { num = 1; cor(12,14); if( (i>0 && i<MAX-1)&& (j>0 && j<MAX-1 )){cor( 0,11);num = 2;} if((i>1 && i<MAX-2) && (j>1 && j<MAX-2) ){cor(15,12);num = 3;} MAT[i][j] = num; Sleep(400); printf("%d ",MAT[i][j]); } printf("\n"); } printf("\n\n\n Tecle Enter . . . ! \n"); cor(antes,antis); getchar(); return 0; } void cor(int letras,int fundo ) { SetConsoleTextAttribute(h,letras + (fundo << 4)); } gotoxy(int coluna,int linha) { COORD c; c.X = coluna; c.Y = linha; SetConsoleCursorPosition(h,c); }  
  20. O post de devair1010 em Exercicio Matriz em C foi marcado como solução   
    @Gustavo Tavares Isobe   existem muitos modos de se fazer esse exercício ,  e você está preenchendo a matriz manualmente ,  e assim também vai funcionar , mas não é o que pede o enunciado ,  que diz para gerar a matriz , e então uma outra solução poderia ser assim :
    #include <stdio.h> #include <Windows.h> #define MAX 6 #define h GetStdHandle(STD_OUTPUT_HANDLE) void cor( int,int ); // 16 cores de zero até 15; gotoxy(int,int); // move o cursor para a coluna e linha espevificadas int main() { int antes, antis; CONSOLE_SCREEN_BUFFER_INFO c; if(GetConsoleScreenBufferInfo(h, &c)) { antes = ( c.wAttributes & 0xFF) & 0x0F; antis = ((c.wAttributes & 0xFF) >> 4) & 0x0F; } printf("Cor dAs letras AntEs --= %d\n\\ \rCoR dO fUndo AntiS --= %d\n", antes,antis ); int i, j; int MAT[MAX][MAX]={0}; int num; int coluna = 35, linha = 5; printf("\n\n\n"); for(i=0; i<MAX; i++) { gotoxy(coluna, linha); linha++; for(j=0; j<MAX; j++) { num = 1; cor(12,14); if( (i>0 && i<MAX-1)&& (j>0 && j<MAX-1 )){cor( 0,11);num = 2;} if((i>1 && i<MAX-2) && (j>1 && j<MAX-2) ){cor(15,12);num = 3;} MAT[i][j] = num; Sleep(400); printf("%d ",MAT[i][j]); } printf("\n"); } printf("\n\n\n Tecle Enter . . . ! \n"); cor(antes,antis); getchar(); return 0; } void cor(int letras,int fundo ) { SetConsoleTextAttribute(h,letras + (fundo << 4)); } gotoxy(int coluna,int linha) { COORD c; c.X = coluna; c.Y = linha; SetConsoleCursorPosition(h,c); }  
  21. O post de devair1010 em Crie um programa em C que contenha vetor de 100 elementos. foi marcado como solução   
    @alexandrecasa    para inserir um char no vetor , ele precisar ser também do tipo char ,  e digitar 100 números será bem cansativo ,então você pode colocar números aleatórios automaticamente , assim  :
    #include <stdio.h> #include <time.h> int main (void) { srand(time(NULL)); int i,num; char vetor [100]; printf ("\n Escreva 100 valores para o vetor: "); for (i = 0; i < 100; i++){ //scanf ("%i", &vetor[i]); num = rand() % 100; if(num % 2 == 0)vetor[i] = 'X'; else vetor[i] = 'O'; } i=0; while (i < 100) { printf ("\n Valor do índice: "); if (i % 2 == 0) { printf("\t %i", i); printf ("\t Posição de armazenagem: "); printf ("\t X"); } else { printf("\t %i", i); printf ("\t Posição de armazenagem: "); printf ("\t O"); } i++; } return 0; }  
  22. O post de devair1010 em função que receba um vetor de inteiros e se tamanho, retorna o maior vetor. foi marcado como solução   
    @Caio Fagundes21    o que falta no seu código é criar o vetor vet e enviar também o tamanho , e seu código com essas modificações poderia ser assim  :
    #define _CRT_SECURE_NO_WARNINGS // para usar scanf e outras funcoes no visual studio #include <stdio.h> #include <time.h> // para usar oa funcao srand #include <stdlib.h> // para usar a funcao srand int encontraMaior(int * , int ); // protótipo da funcao int main() { srand(time(NULL)); // semente para a funcao rand int vet[10] = { 0 }; // cria e preenche o vetor com valor zero int i; for (i = 0; i < 10; i++)vet[i] = rand() % 2158 + 1; // gera e preenche com valores aleatorios o vetor int pos = encontraMaior(vet,10); printf("Maior valor esta na posicao %d pos numero\n\ \re o Maior Numero eh %d " , pos,vet[pos]); for (i = 0; i < 10; i++)printf("%3d == %4d\n\t\t\t\t", i, vet[i]); return 0; } int encontraMaior(int vetor[], int tam) { int i, indice = 0; int maior = vetor[0]; for (i = 1; i < tam; i++) { if (vetor[i] > maior) { maior = vetor[i]; indice = i; } } return indice; }  
  23. O post de devair1010 em função que receba um vetor de inteiros e se tamanho, retorna o maior vetor. foi marcado como solução   
    @Caio Fagundes21    o que falta no seu código é criar o vetor vet e enviar também o tamanho , e seu código com essas modificações poderia ser assim  :
    #define _CRT_SECURE_NO_WARNINGS // para usar scanf e outras funcoes no visual studio #include <stdio.h> #include <time.h> // para usar oa funcao srand #include <stdlib.h> // para usar a funcao srand int encontraMaior(int * , int ); // protótipo da funcao int main() { srand(time(NULL)); // semente para a funcao rand int vet[10] = { 0 }; // cria e preenche o vetor com valor zero int i; for (i = 0; i < 10; i++)vet[i] = rand() % 2158 + 1; // gera e preenche com valores aleatorios o vetor int pos = encontraMaior(vet,10); printf("Maior valor esta na posicao %d pos numero\n\ \re o Maior Numero eh %d " , pos,vet[pos]); for (i = 0; i < 10; i++)printf("%3d == %4d\n\t\t\t\t", i, vet[i]); return 0; } int encontraMaior(int vetor[], int tam) { int i, indice = 0; int maior = vetor[0]; for (i = 1; i < tam; i++) { if (vetor[i] > maior) { maior = vetor[i]; indice = i; } } return indice; }  
  24. O post de devair1010 em função que receba um vetor de inteiros e se tamanho, retorna o maior vetor. foi marcado como solução   
    @Caio Fagundes21    o que falta no seu código é criar o vetor vet e enviar também o tamanho , e seu código com essas modificações poderia ser assim  :
    #define _CRT_SECURE_NO_WARNINGS // para usar scanf e outras funcoes no visual studio #include <stdio.h> #include <time.h> // para usar oa funcao srand #include <stdlib.h> // para usar a funcao srand int encontraMaior(int * , int ); // protótipo da funcao int main() { srand(time(NULL)); // semente para a funcao rand int vet[10] = { 0 }; // cria e preenche o vetor com valor zero int i; for (i = 0; i < 10; i++)vet[i] = rand() % 2158 + 1; // gera e preenche com valores aleatorios o vetor int pos = encontraMaior(vet,10); printf("Maior valor esta na posicao %d pos numero\n\ \re o Maior Numero eh %d " , pos,vet[pos]); for (i = 0; i < 10; i++)printf("%3d == %4d\n\t\t\t\t", i, vet[i]); return 0; } int encontraMaior(int vetor[], int tam) { int i, indice = 0; int maior = vetor[0]; for (i = 1; i < tam; i++) { if (vetor[i] > maior) { maior = vetor[i]; indice = i; } } return indice; }  
  25. O post de devair1010 em Passar para TAD o código foi marcado como solução   
    @Sskrainer    o Que voce quer fizer vom TAD  ?  ,    e o wue esse vodigo deve fazer ?

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!