Ir ao conteúdo

devair1010

Membro Pleno
  • Posts

    6.318
  • Cadastrado em

  • Última visita

Tópicos solucionados

  1. O post de devair1010 em Vetores (ÁREA) Linguagem C foi marcado como solução   
    @Vitor1233   você pode ver no próprio compilador / IDE as msg de erro que o compilador informa  na janela em baixo do código ,  

    e ali está informando que você usou uma variável que não foi criada antes de ser usada e também não colocou o fecha_parênteses no final da linha do printf ,
    #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> /* Para utilizarmos as funões printf e scanf (impressão e leitura de dados respectivamente). */ #include<locale.h> /* Para utilizarmos a função setlocale que faz o printf() imprimir caracteres da língua Portuguesa como á, ã, ç*/ int main() { float L [500] = {}, A [500] = {}, AREA[500] = {}; int contador = 0 ; // contador geralmente comecam em zero ! setlocale(LC_ALL, "Portuguese"); // essa biblioteca eh problematica for ( int i = 0; i < 2; i++) // crie a variavel de controle do loop dentro // do loop e o vetor só vai de zero ate enquanto for menor que o limite { // digitar 1000 numeros precisa ter muita paciência , teste com apenas 2 printf("digite o valor da largura : "); // msg scanf("%f", &L[i]); // Recebendo os valores dos comprimentos // prefira duas barras quando for um comentario de apenas uma linha // e barra e asterisco quando for um bloco com muitas linhas printf("digite o valor da altura : "); // msg scanf("%f", &A[i]); // Recebendo os valores das alturas if (L[i] > 5)contador++; // conta qtd de larguras maiOr de cinco } printf("\n\t %d objetos com larura maior que cinco !\n",contador); for (int j = 0; j < 2; j++) { AREA[j] = L[j] * A[j]; printf("\n\t Áreas [%d] em metros quadrados = %7.2f", j, AREA[j]); // faltou esse fecha_paranteses } printf("\n\n"); return 0; }  
  2. O post de devair1010 em Pegar o menor e maior elemento em cada linha de uma matriz foi marcado como solução   
    @anonimocomduvidas    modifica sim , pois está escrito no código para fazer isso mesmo , e se você não quer assim então remova Aquela linha
    for (i=0; i<n; i++){ for (j=0; j<m; j++){ printf("Digite os valores da matriz linha %d, coluna %d = \n", i, j); scanf("%d", &matriz[i] [j]); /// assim você insere os valores manualmente /// matriz[i][j] = rand()%100+1; /// essa Linha AQui } }  
  3. O post de devair1010 em Condicional múltipla no VisuAlg foi marcado como solução   
    @LuanaNasc    esse código não apresenta nenhum erro ,  testei aqui no VisualG 3.0.6.5 , que é uma versão estável já bem testada  de compilador ,  e então creio que seja mesmo o compilador que você está usando , uma versão nova e Que provavelmente ainda contenha algum bug  ,  e  outra coisa é que você colocou parênteses na comparação ,  mas não precisa pois tem apenas uma comparação  e só precisaria se fossem duas ou mais ,  e no visualG não importa a identasção , diferente de python , onde é obrigatória ,  mas o código bem identado ajuda a compreensão e identificação de algum erro ,   e seu código  assim funciona bem :
    Algoritmo "Atv1" // Função: Ler a quantidade de livros e imprimir a opção de desconto mais vantajosa // Autor: Luana // Data: 06/11/2021 Var livros : real c1 : real c2 : real c3 : real Inicio escreval("Insira a quantidade de livros: ") leia(livros) c1 <- 0.25 * livros + 7.5 // desconto de 25 por cento c2 <- 0.50 * livros + 2.5 // desconto de 50 por cento c3 <- 0.65 * livros + 1.5 // desconto de 65 por cento limpatela se c1 < c2 entao // não precisa desses parenteses escreval("O desconto será melhor aplicado no Critério A") senao se c2 < c3 entao // pois é apenas uma comparação escreval("O desconto será melhor aplicado no Critério B") senao se c3 < c2 entao // se fossem duas comparacoes precisaria escreval ("O desconto será melhor aplicado no Critério C") FimSe FimSe FimSe Fimalgoritmo
  4. O post de devair1010 em Erro ao impimir informação no arquivo de texto foi marcado como solução   
    @GustavoMarchesim   essa sintaxe desse comando if não funcione assim como você colocou ,
    /// if(Global.Cd == 's', 'S') syntaxe errada if(Global.Cd == 's' || Global.Cd == 'S') { fprintf(DB,"\nNome ---------------: %s\n\ \rIdade --------------: %s\n\ \rCPF ----------------: %s\n\ \rTelefone -----------: %s\n\ \rEmail --------------: %s\n\ \rCEP ----------------: %s\n\ \rEstado -------------: %s\n\ \rCidade -------------: %s\n\ \rBairro -------------: %s\n\ \rComorbidade --------: %s\n\ \rQuais Comorbidades -: %s\n\ \r================================\n" , Paciente.nome , Paciente.idade , Paciente.cpf , Paciente.telefone , Paciente.email , Paciente.CEP , Paciente.estado , Paciente.cidade , Paciente.bairro , Paciente.comorbidade, Paciente.quais );  
  5. O post de devair1010 em Meu programa em C não está listando em ordem crescente foi marcado como solução   
    @patopaloro2001      seu metodo de ordenscao esta com erro ,  pois Quando i for igual a zero , entao  i-1 leva a uma posicao inexistente no vetor ,  e creio que se voce usar o metodo bubblesort seria melhor
    int j , i, aux;
    for(i=0 ; i<9; i++)
    {
        for(j=i+1; j<10; j++)
        {
            if(numeros[i] < numeros[j])
            {
                aux              = numeros[i];
                numeros[i] = numeros[j];
                numeros[j] = aux;
            }
        }
    }
  6. O post de devair1010 em Algoritmo no Portugol Studio foi marcado como solução   
    @GabeP    o símbolo de diferença na comparação é esse mesmo "!="  igual o da linguagem c e c++ e c# ,   e o erro é que você está tentando comparar tipos diferentes ,  RU do tipo cadeia com x1 e x2 do tipo real  ,  ali no enquanto ,  e que seria melhor usar ele como sendo faca / enquanto  ,  e assim você pode usar uma outra variável para decidir se digitou certo ou não ,  e voltar lá na pergunta novamente se precisar ,   e essa parte de seu código poderia ser assim  :
    programa { inclua biblioteca Matematica --> mat real a=5, b=2, c=2,delta=0 real x1=0, x2=0 real raizdelta=0.00, bas_kara=0.00 inteiro flag = 0 cadeia RU="", continuar="" logico RL = verdadeiro funcao inicio() { escreva ("1° valor de x: ", x1, " _ formula: (-b + √Δ)\n") escreva ("2° valor de x: ", x2, " _ formula: (-b - √Δ)\n") escreva ("Proxima formula < ax² + bx +c >\n") faca { flag = 0 escreva ("Qual valor de x você deseja usar? (x1 ou x2): ") leia(RU) se ( ( RU != "x1" ) e ( RU != "x2" ) ) { flag = 1 } }enquanto( flag == 1 ) se (RU == "x1") bas_kara = mat.potencia((a*x1),2) + b * x1 + c senao bas_kara = mat.potencia((a*x2),2) + b * x2 + c escreva ("O valor da equação de segundo grau é: ", bas_kara) } }  
  7. 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; }  
  8. 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; }  
  9. 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 }  
  10. 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; }  
  11. 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 }  
  12. 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; }  
  13. 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; }  
  14. 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; }  
  15. 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; }  
  16. 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  
  17. 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.  
  18. 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  
  19. 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  
  20. 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  
  21. 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; }  
  22. 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; }  
  23. 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++); }  
  24. 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); }  
  25. 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); }  

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!