Ir ao conteúdo

devair1010

Membro Pleno
  • Posts

    6.318
  • Cadastrado em

  • Última visita

Tudo que devair1010 postou

  1. @Blumer Celta testei seu código e ele funciona bem , porém ele não está mostrando o resuLtado igual está especificado lá no enunciado , pois ele escreve os números , e Quando coloca os colchetes marcando os divisíveis por Quatro ele coloca um esPaço entre o abre colchete e o número , e não era para ter esse espaÇo , então se usar caracteres pode escrever do modo certo , pois como números o visualG pula mesmo um espaço , e outra coisa que observei , foi que você não fez a indentação do código , que poderia ser assim : algoritmo "divisivel por quatro" // Data : 17/02/2022 var contador : inteiro inicio contador <- 30 Enquanto contador > 0 faca Se contador % 4 = 0 entao Escreva (" [",numpcarac(contador),"]") Senao Escreva (contador) Fimse contador <- contador -1 FimEnquanto Escreval(" ...") fimalgoritmo
  2. @ana_c_martins no código foi adicionado o valor -1 nessa variável "uktimo" e assim quando soma mais 1 nela , ela vai para zero , e o vetor está declarado para iniciar a partir de 1 , e então dois modos de fazer isso , colocar o vetor começando em zero vet : vetor[0..5] de inteiro ou não adicionar nenhum valor â variável ultimo que ficaria assim : Inicio // ultimo <- -1 não adiciona nenhum valor // pois ela ja tem o valor zero ao ser criada repita escreval("1 - Adicionar") escreval("2 - Excluir") escreval("3 - Ordenar") escreval("4 - Sair") escreval("====================") escreval("Opção: ") leia(opcao) e creio que seja o mais correto a se fazer .
  3. @Cambalinho @Cambalinho lógico que quanto menos comandos usar menos tempo a função vai gastar , então aproveite ao máximo cada um deles ,por exemplo em um menu : escreva("1 - adicionar\n") escreva("2 - listar\n") escreva("3 - sair ") leia(opcao) ai vai chamar a função "escreva" , 3 e vezes escreva ( "1 - adicionar\n", "2 - listar\n", "3 - sair " ) e nessa aqui chama a função apenas uma vez , assim vai bem mais rápido .
  4. @iTzCrazy essa variável booleana está aceitando valores int , mas na verdade o tipo bool tem pouca utilidade ou nenhuma , pois uma bool na linguagem c só pode ter dois valores true ou false , ou zero ou um , pois em c o zero siginifica false , e Qualquer outro valor é true .
  5. @ana_c_martins no segundo código você colocou os comandos fora das posições adequadas deles , pois os procedimentos precisam ficar antes do inicio do programa , e também usar letras maiúsculas nos comandos não ajudam em nada , apesar de Que o VisualG não faz distinção , delas , mas fica bem estranho , melhor usar minúsculas mesmo , os procedimento sem parâmetros não precisam dos parênteses , e seu código modificado para compilar poderia ser assim : Algoritmo "Ordenação BubbleSort SA6 Etapa 1" Var vet : vetor[1..5] de inteiro ultimo,i,J : inteiro aux,opcao : inteiro troca : logico x : caractere procedimento adicionar Inicio se ultimo < 4 entao ultimo <- ultimo + 1 escreva("Adicione um elemento : ") leia(vet[ultimo]) senao escreval("Número máximo de elementos adicionados - <enter>") leia(x) fimse fimprocedimento //========================================================================================= procedimento Excluir Var Inicio se ultimo >= 0 entao para j de 0 ate 4 faca SE j < 4 ENTAO vet[j] <- vet[j+1] senao vet[j] <- 0 fimse fimpara fimprocedimento //========================================================================================= Procedimento ordenar Inicio troca <- verdadeiro enquanto troca = verdadeiro faca troca <- falso para i de 1 ate 4 faca se vet[i] > vet[i+1] entao aux <- vet[i] vet[i] <- vet[i+1] vet[i+1] <- aux troca <- verdadeiro fimse fimpara fimenquanto fimprocedimento Inicio ultimo <- -1 repita escreval("1 - Adicionar") escreval("2 - Excluir") escreval("3 - Ordenar") escreval("4 - Sair") escreval("====================") escreval("Opção: ") leia(opcao) escreval("====================") escolha opcao caso 1 adicionar caso 2 excluir caso 3 ordenar escreval("<enter> para continuar") leia(x) // uma pausa fimescolha limpatela ate opcao = 4 Fimalgoritmo // Este algoritmo está rodando...
  6. @sthefanes245 Nesse código você não vai precisar de tantas variáveis , e também as variáveis de controle dos loop 's podem ser criadas dentro do próprio loop , e isso se você estiver usando um IDE / compilador moderno , e Ali depois da multiplicação você pode usar as próprias variáveis dos dois loop's para inserir o resultado na posição adequada do vetor , e poderia ser assim : for (int i = 0; i < lin; i++) // cria a variaveL de controle do Loop for (int j = 0; j < col; j++) // cria a variaveL de controle do outro Loop V[ i * lin + j ] = M[i][j] * A; // Multiplica e insere o resultado no vetor e seu código poderia ser assim : #include <stdio.h> #define lin 6 #define col 6 #define tam lin * col int main() { int M[lin][col] = { 1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9, 1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9 }; // cria e incializa uma matriz com esses valores int V[tam] = { 0 }; int A = 0; for (int i = 0; i < lin; i++) { for (int j = 0; j < col; j++) { printf("Informe os valores da matriz M[%d][%d] ", i, j); // scanf("%d", & M[i][j]); use sem esse scanf apenas para testar printf("%3d\n",M[i][j]); } } printf("\npara Multiplicar pelos numeros na Matriz\n\ \rInforme o valor de A "); scanf("%d", &A); for (int i = 0; i < lin; i++) { for (int j = 0; j < col; j++) { V[ i * lin + j ] = M[i][j] * A; printf("%3d ", M[i][j]); } printf("\n"); } printf("\nO vetor V eh :\n\n"); for (int i = 0; i < tam; i++) printf("vetor[%3d] =%3d\n", i,V[i]); return 0; }
  7. @guilherme ramos4545 vetores sã variáveis que podem armazenar vários dados nela , sendo um elemento em cada posição do vetor , então poste o código Que você já fez sobre esse exercício , e em QuaL paRte está com dificuldades e ajudaremos . e o botão code não é esse <> , e sim aquele lá na barra de ferramentas da janela de postar .
  8. @alessa.chagas seu código editado para compilar , mas não ainda tem erros e não detecta as palíndromas // teste 7 - palindromo #include <stdio.h> #include <stdlib.h> #define MAX_SIZE 250 #define MAX_SIZE_WORD 16 int strcmp(char*, char*); // protótipo de funcao // colocadas antes da funcao main int main() { char str[MAX_SIZE]; // só conta letras e numeros int tam = 0; int i, c; char st1[20]; // primeira metade da palavra ou frase char st2[20]; // segunda metade int flag; flag = 0; do { printf("Entre com a palavra: "); scanf("%50[^\n]", str); while ((i = getchar()) != '\n' && i != EOF) {} for (i = 0; str[i] != 0; i++) { tam++; // calcula o tamanho da string } if (tam <= 16) { flag = 0; // 'A'-->65, 'Z'-->90, 'a'-->97, 'z'-->122 for (i = 0; i < tam; i++) { // o pont_e_virgula ai de baixo termina o comando IF sem fazer Nada if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) // ; // if ((str[i] >= 65 && str[i] <= 90) || (str[i] >= 97 && str[i] <= 122)); // essa primeira linha aqui eh + fácil de entender { // Faltou o que fazer se o IF for Verdadeiro } } // str[i] = '\0'; esse aqui não precisa e não faz diferenca } else { // o enunciada diz Que flag = 1; // eh necessario fazer flag igual a 1 e não menos 1 printf("-1"); } } while (flag == 0); // return 0; para Quê esse return ? isso farah terminar a execução do prograMa for (i = 0; i < tam / 2; i++) // loop vai ate o meio { st1[i] = str[i]; // pega a primeira metade st2[i] = str[tam - i]; // pega a segunda metade } st1[i] = 0; // finaliza a string para validar e poder escreve-la com printf st2[i] = 0; // o zero "0" ou o "\0" barra zero , finalizam uma strig if (strcmp(st1, st2) == 0) // compara as duas string's e se forem iguais o resultado eh zero { printf("eh polindromo .\n"); // strcmp retornou zero , entao as duas string's sao iguais } if (strcmp(st1, st2) != 0) // deferente de zero pois strcmp só retorna zero ou hum { printf("não eh palindromo"); // strcmp retornou 1 , as 2 string's sao diferentes } return 0; } int strcmp(char st1[], char st2[]) // essa funcao pode ser colocada depois da funcao main { int i; for (i = 0; st1[i] != 0; i++) { if (st1[i] != st2[i]) // caract de uma dif do da outra return 1; // retorna 1 } if (st2[i] != 0) // segunda string maior que a primeira return 1; // retorna 1 return 0; // sao iguais retorna zero }
  9. @kgin o enunciado é essa aqui 1 - definição do problemas segundo o dicionáeio Michaelis de língua Portuguesa , a palavra palíndromo possui a definição a seguir: ---------------------------------------------------------------------------------------------------------- Palíndromo pa♥lín♥dro♥mo adj sm Diz-se de palavra ou verso ou frase que pode ser lido tanto da esquerda para a direita como da direita para a esquerda sem alteração do sentido . ---------------------------------------------------------------------------------------------------------- Uma palavra palíndroma é , portanto , aquela cuja sequência de letras é simétrica , permitindo leitura idêntica da esquerda para a direita ou da direita para a esquerda . Exemplos : aia , aibofobia , ala , ama , anilina , ata , arara , asa , ele , esse , mamam , matam , metem , mirim , oco , osso , ovo , entre muitas outras . ---------------------------------------------------------------------------------------------------------- O objetivo é construir um programa que informa ao usuário se a palavra digitada por ele é palíndroma ou não . ---------------------------------------------------------------------------------------------------------- 2 - Regras 1 . A biblioteca padrão da linguagem C para manipulação de strings ( strinh.h ) não poderá ser utilizada ! ( Códigos cuja implementação possuírem funções da string.h não serão consideradas ) . Introdução à Computação(CMA11381C-111T) - Exercício Computacional #1 2 ---------------------------------------------------------------------------------------------------------- A ideia deste curso é ensiná-los , acima de tudo , desenvolver habilidades lógicas para escrever algorítmos e programa , independentemente de linguagem . Neste caso , ela é apenas meio e não fim) 2 . Devem ser consideradas apenas palavras de até 15 caracteres maiúscula e/ou minúsculas . Se o usuário entrar com uma cadeia contendo mais do que 15 caracteres , esta entrada deverá ser considerada inválida pelo programa , bem como : • palavras compostas; • strings com números; • strings com caracteres especiais; • strings com espaços e tabs; • strings com apenas espaços , tabs ou , até mesmo , vazias (usuário apertando apenas a tecla enter). Enquanto não estiver correta , o programa deverá continuar solicitando nova entrada . Lembre-se : o bom desenvolvedor sempre pensa em todas as possíveis ações do usuário . Palavras acentuadas , mesmo que palíndromas (por exemplo , omissíssimo) , deverão também ser consideradas entradas inválidas . ---------------------------------------------------------------------------------------------------------- Exemplos (Entradas Válidas): Sopapos , reviver , REVIVER , Reviver , ASA , Asa ,aSa ,asA , asa , osso . ---------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------- Exemplos (Entradas Inválidas): 2002 , 4004 ,ProFGalenO ,ProFAL!via , L@cost@ , otorrinolaringologista , CisBetterThanPython! , &%$#$ . ---------------------------------------------------------------------------------------------------------- 3 . Cuidado ! A linguagem C é case sensitive , isto é , faz distinção entre letras maiúsculas e minúsculas . Portanto , do ponto de vista do C , palavras palíndromas como , por exemplo , Asa = asa = ASA =aSa podem ser consideradas não-palíndromas se a comparação de chars não for feita de forma logicamente correta . Introdução à Computação(CMA11381C-111T) - Exercício Computacional #1 3 ---------------------------------------------------------------------------------------------------------- 4 . Arquivos palin.c palin.c é o arquivo que deverá conter o código fonte implementado . Ele não está vazio . Já contém um modelo de implementação a ser seguido , conforma explicação a seguir . #define MAX_SIZE 250 #define MAX_SIZE_WORD 16 MAX_SIZE é a constante que define o número máximo de posições alocadas estaticamente na memória para as strings declaradas no programa . MAX_SIZE_WORD é a contante que define o tamanho máximo das entradas permitidas , dadas pelo usuário : 15 caracteres juntamente com o espaço reservado para o '\0' . 0 1 2 3 ... 14 15 ----------------------------------------------- | string | 1 | 2 | 3 | 4 | ... | 15 | 16:'\0' | ----------------------------------------------- Figura 1 . Lembre-se : em linguagem C , uma string é um vetor de caracteres cuja última posição é destinada ao '\0' que indica seu final . Observe então que uma string possuíndo 15 caracteres tem 16 posições de memória cujos endereços vão de 0 a 15 , tal que sua décima sexta posição é destinada ao '\0' . int c; int flag; char str[MAX_SIZE]; int c é uma variável inteira definida para auxiliar na leitura da entrada dada pelo usuário . int flag é uma variável inteira bandeira e funcionará como uma sinalizadora ( de comportamento booleano ) no programa . char str[MAX_SIZE] é a string que receberá(armazenará) a entrada do usuário . flag = 0; do { scanf("%50[^\n]" , str); while*((c = getchar()) != '\n' ** c != EOF){} /*<...>*/ }while (flag == 0); Introdução à Computação(CMA11381C-111T) - Exercício Computacional #1 4 ---------------------------------------------------------------------------------------------------------- A variável flag é inicializada com zero . O comando scanf("%50[^\n]" , str) juntamente com a linha do while compõem a leitura da string entrada pelo usuário através do teclado . Sob hipótese alguma , delete ou faça alguma alteração destes dois comandos ! Todo tratamento de entradas incorretas (descritas nas regras acima) deve ser feito no trecho /*<...>*/ . A ideia é que enquanto o usuário não entre com a entrada correta ( conforme as regras ) , o computador solicite nova leitura ( por esta razão , este trecho de código está dentro do do-while ) . A variável responsável por fazer o laço parar quando a entrada lida for correta é flag . Portanto , é necessário fazer flag = 1 ( não esquecer seu caráter booleano ) quando a entrada for correta . Recmenda-se fortemente não compilar palin.c sem prévia alteração , pois o programa entrará em loop infinito dado que , em nenhum momento , a variável flag muda de valor fentro do loop . O espaço destinado à implementação do objetivo do exercício está logo após o loop , como está comentado no arquivo palin.c Input.txt O arquivo Input.txt contém as entradas que deverão ser testadas pelo programa . Output.txt Para a correção dos resultados obtidos pelos programas , as saídas deverão ser salvas em um arquivo de texto ( Output.txt ) tal que cada linha do arquivo deve conter a resposta correspondente a sua respectiva entrada . O retorno obrigatório do programa é -1 para entrada incorreta , 1 para palavra palíndroma e 0 para palavra não-palíndroma . Boa sorte ! REFERÊNCIAS [1] http//michaelis.uol.com.br/moderno~portugues/busca/portugues~brasileiro/pal%C3%ADndromo/.
  10. @IzeraXD seu código está escrevendo palavras , e não caracteres , como você Quer ! , pois você colocou o especificador de string's , da Linguagem C , Que é o "%s" , e para caracteres é o "%c" , assim a palavra escrita vai diminuindo de tamanho ao deslocar a posição inicial dela , Quando você usa o "&" de endereço da VariáveL , e seu código poderia também ser assim : #include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> int strben(char*); int main () { FILE *ponteiro; char texto1[21]; char texto2[21]; char texto3[21]; char texto4[21]; char hh[] = "pokemon"; char hj[] = "Megaman"; int p = 0; /// Abrindo e lendo com o r o texto /// criar o nosso arquivo caso não tenha não eh o foco ponteiro = fopen("02,1 Lendo Aquivos Textos A.txt","r");/// tenta Abrir if(ponteiro == NULL) /// se não conseguir { printf("errou !\n"); ponteiro = fopen("02,1 Lendo Aquivos Textos A.txt","w"); /// cria abre e reseta o /// arquivo p/ gravar desde o inicio dele fprintf(ponteiro, "%s\n" ,hh); /// porQue colocar espaco no final da linha ? ? ? ! fprintf(ponteiro, "%s\n" ,hj); } fclose (ponteiro); /// fechando /// Mano III /// Mano II Ler e Gravar Um Array printf(" ---------------- Mano III ---------------- \n"); ponteiro = fopen("02,1 Lendo Aquivos Textos A.txt","r"); fgets(texto1,20, ponteiro); /// + hum para o "\0" Finalizador de string's texto1[strben(texto1) - 1] = 0; printf("\n-> %s Tem %d Caracteres !\n",texto1,strben(texto1)); /// memcpy(texto3,texto1,strlen(texto1)-1* sizeof(char)); strcpy(texto3, texto1); printf("texto3[0] = %c\n", texto3[0]); printf("texto3[1] = %c\n", texto3[1]); printf("texto3[2] = %c\n", texto3[2]); printf("texto3[3] = %c\n", texto3[3]); printf("texto3[4] = %c\n", texto3[4]); printf("texto3[5] = %c\n", texto3[5]); printf("texto3[6] = %c\n", texto3[6]); for( p=0; p<3; p++) { /// memcpy(texto4[p],texto3[p],sizeof(char)); strncpy(texto4[p],texto3[p],2); printf("una letra = %c \n",&texto3[p]); } /// ; aqui /// podE sim coLocar ponto_e_Virgula , porém não precisaaa printf("%s",texto1); fclose(ponteiro); return(0); } int strben(char A[]) { int tm = 1; /// qtd de caract dessa strinG A while(A[tm] != 0 ) /// vai até o finalizador de string { tm++; /// incrementa o total de caracteres } return tm; /// retorna o total de caract } e se strlen dá problemas , então você pode usar essa função ""strben" . e o resultado seria esse aqui :
  11. @alessa.chagas detectar se uma palavra é políndromo ou não é bem difíciL , pois existem fatores que não são exatos e dependem da interpretação , pois algumas tem qtd ímpar de caracteres outras par , algumas usam o caractere do meio em comum e outras não , e então precisa comparar os carateres da string , e para comparar caracteres , você não precisa usar a biblioteca string.h , e como você postou no tópico de c++ esse seu código poderia ser nessa linguagem c++ , e mesmo nela não precisaria dessa string.h nem da cstring nem da string ou da strings.h , mas se você Quer usar a função strcmp sem nenhuma dessas bibliotecas , você pode criar essa função strcmp aí no seu código : #include <stdio.h> int strcmp(char*,char*); // protótipo de funcao // colocadas antes da funcao main int main() { char str[] = {"O decote V: veto cedo."}; // só conta letras e numeros int tam = 0; char st1[20]; // primeira metade da palavra ou frase char st2[20]; // segunda metade int i; while(str[tam] != 0) { if( str[tam] < 'a' || str[tam] < 'A' || // eliminar caract invalido str[tam] < '0' || str[tam] > '9' || // eliminar caract invalido str[tam] > 'z' || str[tam] > 'Z' ) // eliminar caract invalido { for(i=tam; str[i] != 0; i++) // vai do caract até o final da string { str[i] = str[i+1]; // puxar os caract para baixo } str[i - 1] = 0; // finaliza a string } } for(i=0; str[i] != 0; i++) tam++; // calcula o tamanho da string for(i=0 ; i<tam/2; i++) // loop vai ate o meio { st1[i] = str[i]; // pega a primeira metade st2[i] = str[tam - i]; // pega a segunda metade } st1[i] = 0; st2[i] = 0; if(strcmp(st1 , st2) == 1) // compara as duas string's printf("não "); // se não for polindromica printf("eh polindromo .\n"); // se for return 0; } int strcmp(char m1[],char m2[]) // essa funcao pode ser colocada depois da funcao main { int i; for( i=0; m1[i] != 0; i++) { if(m1[i] != m2[i]) // caract de uma dif da outra return 1; // retorna 1 } if(m2[i] != 0) // segunda string maior que a primeira return 1; // retorna 1 return 0; // sao iguais retorna zero }
  12. @nathaly123 seu código editado para facilitar a compilação , #include <iostream> #include <stdio.h> #include <stdlib.h> #include <cstring> // #include <locale.h> using namespace std; int main() { // setlocale(LC_ALL, "Portuguese"); string Magreza = ""; string Normal = ""; string Sobrepeso = ""; string Obesidade = ""; string ObesidadeGrave = ""; float peso = 0; flosat idade = 0; float altura = 0; float IMC = 0; cout << "Digite a sua altura: "; cin >> altura; cout << "Digite o seu peso atual: "; cin >> peso; cout << "Digite a sua idade: "; cin >> idade; IMC = peso / (altura * altura); cout << "O seu IMC " << (char)130 << " : " << IMC << "Kg / m2" << endl; // Letra é com acentuacao return 0; }
  13. @Simon Viegas não testei , e eu ainda não sabia sobre esse detalhe desse compilador a respeito da variável de controle do loop , obrigado , algoritmo "tabuada" var valor, cont ,resp: inteiro inicio escreva (" deseja a tabuada para qual valor ? ") leia(valor) para cont de 1 ate 10 faca resp <- valor * cont escreval ( valor:2 , " x " , cont:2, " = ", resp:2 ) fimpara fimalgoritmo
  14. @Paulo Ricardo Lauxen sim .
  15. @kalline @kalline no Loop da multiplicação você incrementou a variável "cont" de controle do Loop , cont <- cont + 1 e assim vai pulando de dois em dois cont <- 1 // não precisa inicializar essa variavel // ela já foi inicializada la no inicio // com o valor zero , no momento em Que foi criada para cont <- 1 ate 10 faca escreval ( valor , "x" , cont, "=", resp ) resp <- valor * cont cont <- cont + 1 // aqui incrementa a variavel cont // Que será incrementada novamente // pelo loop "para" fimpara e poderia ser assim : para cont <- 1 ate 10 faca escreval ( valor , "x" , cont, "=", resp ) resp <- valor * cont fimpara
  16. @mariaclara157 sua função le_serie , não está funcionando bem , pois Dos dados lido nela apenas um será retornado para dentro da função main , pois o return só pode retornar um valor , e esse vetor tem muitos valores nele , e mesmo especificando cada valor separado não funciona assim , então você pode enviar o endereço do vetor para essa função , e os dados serão gravados no vetor que está lá dentro da função main , #include <stdio.h> #include <stdlib.h> int le_serie(int*); int main() { int n = 0; int a[50]; // o endereco do vetor comeca a partir da posicao zero int i = 0; while (n < 4) { printf("quantidade de termos da serie: "); scanf("%d", &n); } le_serie(&a[0]); // envia o endereco da primeira posicao do vetor // e assim pode gravar dados nele la na outra funcao printf("\nconderindo se os numeros estão mesmo vetor:\n"); printf("vetor a[0]= %d\n", a[0]); printf("vetor a[1]= %d\n", a[1]); printf("vetor a[2]= %d\n", a[2]); calcula_serie(n, a); serie_invertida(n, a); // enviando um vetor por parametro return 0; } int le_serie(int a[]) // recebe um vetor por parametro , e esse // vetor tem o mesmo endereco do que foi enviado { printf("primeiro termo --: "); scanf("%d", &a[0]); printf("segundo termo ---: "); scanf("%d", &a[1]); printf("Terceiro termo --: "); scanf("%d", &a[2]); return a[0]; // a[1], a[2] não serao retornados // só poDe Retornar um valor // e vetor tem muitos valores // alem disso você ao colocou nenhuma variavel la na main para receber nenhum valor . // aqui nessa funcao não precisa retornar nada , pois os dados // serao gravados no endereco do vetor a que esta la da funcao main // pois o endereco dele foi enviado para caa } int calcula_serie(int n, int a[]) // recebendo um vetor por parametro { int i; for (i = 3; i < n; i++) a[i] = a[i - 1] + a[i - 2] + a[i - 3]; return a[i]; inverte_serie(n, a,a); } int inverte_serie(int n, int a[], int inv[]) { int i; for (i = n; i > 0; i--) inv[i] = a[i]; return inv[i]; } int serie_invertida(int n, int inv[]) { int i; printf("\nOrdem inversa:"); printf("\n{"); for (i = n; i >= 0; i--) printf(" %d", inv[i]); printf("}\n"); return 0; }
  17. @mariaclara157 o que você está tentando fazer nessa Linhas aqui : se está criando um vetor dinâmico , então não precisam de colchetes , mas vai precisar de malloc e depois free , e seu código apenas corrigido para compilar : #include<stdio.h> int calcula_serie(int n, int* ); int inverte_serie(int n, int* ); int main() { int n, a[50], i = 0; printf("quantidade de termos da serie: "); scanf("%d", &n); printf("primeiro termo: "); scanf("%d", &a[0]); printf("segundo termo: "); scanf("%d", &a[1]); printf("Terceiro termo: "); scanf("%d", &a[2]); calcula_serie(n, a); // enviando um vetor por parametro return 0; } int calcula_serie(int n, int a[]) // recebendo um vetor por parametro { int i; for (i = 3; i < n; i++) { a[i] = a[i - 1] + a[i - 2] + a[i - 3]; } printf("\nOrdem Original:"); printf("\n{"); for (i = 0; i < n; i++) printf(" %d", a[i]); printf("}\n"); inverte_serie(n,a); return 0; } int inverte_serie(int n, int a[]) { int i; printf("\nOrdem inversa:"); printf("\n{"); for (i = n; i >= 0; i--) printf(" %d", a[i]); printf("}\n"); return 0; }
  18. @maria paiva uai ! , o que você está fazendo na matriz C ? ?: , não é isso Que o enunciado pede , não , e seria então multiplicar cada um elemento da matriz A por um elemento da matriz B na mesma posição , pois do jeito que você colocou , isso vai é multiplicar os elementos e acumular o valor total de cada Linha em cada uma das posições de uma Linha da matriz c , e ainda invertendo as linhas e colunas , basta multiplicar um único elemento pelo outro , for(k1=0; k1<linA; k1++) { for(k2=0; k2<colA; k2++) // as matrizes tem qtd de Linhas e colunas iguais { /* temp=0.0; // não precisa dessa Linha for(i=0;i<colA;i++) // não precisa dessa Linha { // não precisa dessa Linha temp=temp+A[k1][i]*B[i][k2]; // não precisa dessa Linha } // não precisa dessa Linha */ C[k1][k2] = A[k1][k2] * B[k1][k2]; } } printf("\n\n"); e a diagonaL principal e secundária seriam essas aqui tente postar seu código editado no formato code <> #include <stdio.h> #include <stdlib.h> #define linA 2 #define colA 2 #define linB 2 #define colB 2 int main() { int i, j, k1, k2; float A[linA][colA]; float B[linB][colB]; float C[linA][colB]; float temp; // Carregando matriz A printf(" \n CARREGAMENTO DA MATRIZ A \n \n"); for (i = 0; i < linA; i++) { for (j = 0; j < colA; j++) { printf("A[%d][%d] = ", i + 1, j + 1); Label_1: // Label do comando Goto , volta para esse ponto do programa scanf("%f", &A[i][j]); if (A[i][j] <= 4.88) { printf("Digitou menor Que 4.88 , tente novamente\n"); goto Label_1; // vai para o ponto informado pelo Label } } } // Carregando matriz B printf(" \n CARREGAMENTO DA MATRIZ B \n \n"); for (i = 0; i < linB; i++) { for (j = 0; j < colB; j++) { printf("B[%d][%d] = ", i + 1, j + 1); Label_2: // Label do comando Goto , volta para esse ponto do programa scanf("%f", &B[i][j]); if (B[i][j] <= 4.88) { printf("Digitou menor Que 4.88 , tente novamente\n"); goto Label_2; // vai para o ponto informado pelo Label } } } // Imprimindo a matriz A printf("\n MATRIZ A \n \n"); for (i = 0; i < linA; i++) { for (j = 0; j < colA; j++) { if (j != (colA - 1)) printf("%.2f \t", A[i][j]); else printf("%.2f \n", A[i][j]); } } printf("\n \n"); // Imprimindo a matriz B printf("\n MATRIZ B \n \n"); for (i = 0; i < linB; i++) { for (j = 0; j < colB; j++) { if (j != (colB - 1)) printf("%.2f \t", B[i][j]); else printf("%.2f \n", B[i][j]); } } for (k1 = 0; k1 < linA; k1++) { for (k2 = 0; k2 < colB; k2++) { C[k1][k2] = A[k1][k2] * B[k1][k2]; } } printf("\n \n"); printf("\n MATRIZ C = A x B \n \n"); for (i = 0; i < linA; i++) { for (j = 0; j < colB; j++) { if (j != (colB - 1)) { printf("%.2f \t", C[i][j]); } else { printf("%.2f \n", C[i][j]); } } } printf("\n\n\n"); return 0; }
  19. @Douglas Santos10 poste o enunciado , e se já tiver feito um código , pode postar também , pois se for apenas para informar Quem teve a nota na media , você não precisa de usar vetores ,
  20. @andrieli.m31 o calculo do IMC está errado , e poderia ser assim : #include <stdio.h> int main(void) { float peso=0, altura=0, imc=0; int total=0, totalMagreza=0, totalNormal=0, totalPreO=0, totalObesidade=0; float Pmagreza, Pnormal, Ppreobeso, Pobesidade; printf("Informe seu peso \n"); scanf("%f", & peso); printf("Informe sua altura \n "); scanf("%f", & altura); total++; //imc = peso / altura * peso / altura; imc = peso / (altura * altura); printf("imc = %.2f\n",imc); }
  21. @Lucas De Sousa Mendes use o comando IF para saber se o valor foi ou não aceito , e entre as chaves do IF colowye a MSG usando um printf .
  22. @Myk4my muito boa sua solução , gosyei muito mesmo , só não vejo necessidade de pular várias linhas , pois o código fica longo e difícil de ler , me parece Que assim seria melhor , #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int basex, potenciay; printf("Entre com os valores de baseX e potenciaY: "); scanf("%d%d", &basex, &potenciay); printf("\n%d elevado a %d = ", basex, potenciay); while (potenciay > 1) { basex *= basex; --potenciay; } printf("%d\n\n\n", basex); return 0; // geralmente todas as funcoes do tipo int retorna algum valor }
  23. @andrieli.m31 você pode usar o comando modulo do número , que na Linguagem c é esse aqui "%" , e extrair o último Digito do número , e tente postar seu código com esse formato aqui de baixo , para facilitar a outros copiar e testar seu código : #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { int mat; int sobra; printf("Informe sua matrícula \n"); scanf("%d", &mat); int uLtimo_Digito = mat % 10; if (uLtimo_Digito >= 0 && uLtimo_Digito <= 2) { printf("pagamento at%c 10/março \n",130); } if (uLtimo_Digito >= 3 && uLtimo_Digito <= 5) { printf("pagamento at%c 10/junho \n",130); } if (uLtimo_Digito == 6 && uLtimo_Digito == 7) { printf("pagamento at%c 10/agosto \n",130); } if (uLtimo_Digito >= 8) { printf("pagamento at%c 10/novembro \n",130); } return 0; }
  24. @oromotoceu seria melhor você criar um novo post no tópico de Linguagem c , para obter ajuda , pois esse aqui é de c# , e veja se consegue colocar com esse formato aqui de baixo : #define _CRT_SECURE_NO_WARNINGS /* 3) Faça um programa que leia as seguintes informações sobre os alunos : • Nome do aluno; • Número de faltas. • Crie uma turma com 5 alunos. • Cada turma terá 20 aulas no semestre. O programa deve imprimir o percentual de faltas para cada aluno e ao final do processamento o total de alunos reprovados por falta(25 % de faltas). */ #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int faltas = 0; char nome[25] = {0}; float perc = 0; int reprovados = 0; for (int i = 0; i < 5; i++) // esse Loop criou uma turma com cinco Alunos { printf("Nome "); // Nome do Aluno scanf("%s", nome); // pega o nome printf("Qtd de faltas "); // msg int r = scanf("%d", &faltas); // pega o numer de faltes e também o retorno de scanf if (r == 0)printf("Erro !\n"); // se scanf não leu nada // pela Regra de Trêss perc = (float)100 * faltas / 20; // 20 eh o total de Aulas , igual a 100 porcyentoo printf("percentual de faltas para o Aluno %s %.2f\n",nome,perc); if (perc >= 25)reprovados++; // total de reprovados } printf("Foram reprovados %d\n", reprovados); // mostra o tatal de Alunos reprovados port Galtas return 0; }
  25. @maria paiva você pode usar o comando IF para comparar o número digitado pelo usuário , com o valor 4.88 , e assim determinar o que fazer , pois se precisam ser maiores de 4.88 então creio que o certo seria voltar e pegar outro número e para isso você pode usar o comando goto para ir para uma determinada parte do código do programa , e seu código poderia ser assim : #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int linA = 4, colA = 4; float A[16][16]; for (int i = 0; i < linA; i++) // variavel i só existe dentro desse loop { for (int j = 0; j < colA; j++) // variavel j só existe dentro desse loop { printf("A[%d][%d] = ", i + 1, j + 1); // informa a posicao na Matriz Label_1: // Label do comando Goto , volta para esse ponto do programa int r = scanf("%f", &A[i][j]); // if (A[i][j] <= 4.88) // se num digitaDo for menor que 4.8 volta aoLabel_1 , para pegar outro { printf("DigitOu menor Que 4.88 , tente novamente\n"); goto Label_1; // vai para o ponto informado pelo Label } } } return 0; }

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!