Pesquisar na Comunidade
Mostrando resultados para as tags ''C++''.
Encontrado 65 registros
-
Olá, pessoal! Sou iniciante em programação. Criei um sistema simples para mostrar os valores de uma matriz, conforme o menu de escolha. O sistema só é encerrado, se o valor 5 for digitado. Segue abaixo o código: #include<iostream> #include<stdio.h> #include<locale.h> using namespace std; int Menu (){ cout << "=========================================" << endl; cout << " M E N U D E O P Ç Õ E S " << endl; cout << "=========================================" << endl; cout << "[1] Mostrar a Matriz" << endl; cout << "[2] Diagonal Principal" << endl; cout << "[3] Triângulo Superior" << endl; cout << "[4] Triângulo Inferior" << endl; cout << "[5] Sair" << endl; cout << "=========================================" << endl; } int main (){ setlocale (LC_ALL, "Portuguese"); int l, c, mat[4][4], opcao; char esc = 's'; for (l = 0; l < 4; l++){ for (c = 0; c < 4; c++){ cout << "Digite o valor da posição " << "[" << l << "," << c << "]: "; cin >> mat[l][c]; } } system ("cls"); do{ Menu(); cout << "Digite a opção desejada: "; cin >> opcao; system ("cls"); if (opcao == 1){ for (l = 0; l < 4; l++){ for (c = 0; c < 4; c++){ printf ("%5d", mat[l][c]); } cout << "\n"; } } if (opcao == 2){ for (l = 0; l < 4; l++){ printf ("\n%5d", mat[l][l]); } cout << "\n"; } if (opcao == 3){ for (l = 0; l < 4; l++){ for (c = 0; c < 4; c++){ if (l > c || l == c){ printf (" "); }else if (l < c || l == c){ printf ("%5d", mat[l][c]); } } cout << "\n"; } } if (opcao == 4){ for (l = 0; l < 4; l++){ for (c = 0; c < 4; c++){ if (l < c || l == c){ printf (" "); }else if (l > c || l == c){ printf ("%5d", mat[l][c]); } } cout << "\n"; } } }while (opcao < 5); cout << "ENCERRANDO..."; } Eu gostaria de fazer uma implementação para mostrar da seguinte maneira: Se o usuário digitar algum valor que não está contido no menu, o sistema mostraria a informação "VALOR INVÁLIDO". O problema é que se eu fizer uma condição para comparar se a minha variável "opcao" for menor do que 1 ou "opcao" maior do que 5, o sistema irá encerrar o meu programa e exibir a mensagem "VALOR INVÁLIDO", juntamente com a outra mensagem do final do programa que é "ENCERRANDO..." De que forma eu poderia implementar isso, sem que o meu programa fosse encerrado até que o valor 5 seja escolhido? Alguém poderia me ajudar? Grato pela atenção!
-
Então, estava desenvolvendo o meu código de árvore AVL para minha prova da faculdade, mas em um teste percebi que não estava mostrando os dados inseridos, mas caso eu tirasse a estrutura de repetição a impressão era feita com sucesso, então peço ajuda de vocês para resolver esse meu problema. Segue abaixo o código. #include <iostream> #include <malloc.h> #include <locale.h> using namespace std; typedef struct no{ int chave; struct no* esquerda, *direita; }; no* CriaNo(int v){ no* NovaChav = (no*) malloc(sizeof(no)); NovaChav->esquerda = NULL; NovaChav->direita = NULL; NovaChav->chave = v; return NovaChav; } no* AdcionaNO(no* arvore, int v){ if(arvore == NULL){ return CriaNo(v); } if(arvore->chave > v){ arvore->esquerda = AdcionaNO(arvore->esquerda, v); }else{ arvore->direita = AdcionaNO(arvore->direita, v); } return arvore; } void ImprimeArv(no* arvore){ // cout<<"<"<<endl; if(arvore != NULL){ cout<<arvore->chave<<endl; ImprimeArv(arvore->esquerda); ImprimeArv(arvore->direita); } //cout<<">"<<endl; } int main() { setlocale(LC_ALL, "PORTUGUESE"); int op=0, numb; no* raiz = NULL; //raiz = AdcionaNO(raiz, 5); while(op!=1){ cout<<"Escolha uma função:"<<endl; cout<<"1-Sair"<<endl; cout<<"2-Inserir valor"<<endl; cin>>op; ImprimeArv(raiz); switch(op){ case 2: cout<<"Adcionar um valor à árvore"<<endl; cout<<"Qual o valor a ser inserido?"<<endl; cin>>numb; AdcionaNO(raiz, numb); } } return 0; }
-
Verificar caracteres em negrito em uma planilha/ liguagem C/C++
gabriel1303 postou uma questão Perguntas e respostas rápidas
É possível verificar a ocorrência de um caractere em negrito em uma planilha do Excel utilizando c/c++? -
#include <iostream> #include <locale> using namespace std; int main(){ setlocale(LC_ALL,"ptb"); int idade; char *categoria; cout<<"informe a idade do participante: "; cin>>idade; while(idade!=-1){ if(idade>=7 && idade<=12){ categoria="INFANTIL"; } else if(idade>12 && idade<=17){ categoria="JUVENIL"; } else if(idade>17 && idade<=49){ categoria="ADULTO"; } else if(idade>=50){ categoria="SÊNIOR"; } else{ cout<<"Infelizmente o candidato ainda não pode participar!"; } cout<<"O participante está na categoria "<<categoria << " \n "; cout<<"Informe a idade do participante: "; cin>>idade; } } então pessoal esse é meu codigo, está funcionando bonitinho, porém quando eu faço o teste da ultima opção do encadeamento else, que está em vermelho, aparece o resto do codigo também, o que está em verde, tem alguma maneira de fazer essas ultimas mensagens não aparecerem? não quero ter que colocar saídas(cout) em todos os if's e elses. Obs: to aprendendo peguem leve.
-
Recursividade para mostrar numeros anteriores de N até 5 numeros anteriores
RickSilva postou um tópico no fórum C/C++
Tenho que criar um código que imprime os 5 numeros anteriores, por exemplo: se o usuario digitar 30, tem que ser impresso 29, 28, 27, 26, 25. Eu conseguir criar um código, porem começa do numero atual, se eu digito 30 começa do 30 e não é isso que eu quero. Eu consigo fazer isso tranquilo com um for, mas preciso que seja com recursividade. O codigo que criei foi esse: #include <stdio.h> long int number(int num, int y){ if(num > y-5){ printf(" %d ", num); number(num - 1, y); } else{ return 0; } } int main() { int N; int y; printf("Digite um numero inteiro positivo: "); scanf("%d", &N); y = N; number(N, y); return 0; } -
c++ Duvida com switch case, submenus
Rafaahs postou um tópico no fórum Docker, Kubernets e outros ambientes
Boa Tarde, Meu professor jogou uma "bomba" para mim sem ao menos explicar direito, enfim ele pediu para criarmos uma Lista de característica de animais... exemplo: Quadripedes, bípedes, voadores... e se você escolher quadrupedes vai para opção... carnívoro [1] herbívoros[2] e dando a próxima escolha aparece o nome dos animais, LEAO ou CAVALO. o Problema é que eu não estou conseguindo fazer escolher a opção cavalo , quando a pessoa escolhe todo '1' chega no leao, mas se na ultima etapa você digitar '2' era para aparecer cavalo, porém fica em Branco... me ajudem por favor. #include<stdio.h> #include<stdlib.h> int main() { char opcao; do { system("cls"); printf("\n Digite a categoria do animal desejado: "); printf("\n [1] Mamiferos: "); printf("\n [2] Aves"); printf("\n [3] Repteis: "); printf("\n [4] fim "); printf("\n Digite sua opcao: "); fflush (stdin); scanf("%c", &opcao); switch(opcao) { case'1': printf("\n[1] quadrupedes"); case'2': printf("\n[2] bipedes"); case'3': printf("\n[3] voador"); case'4': printf("\n[4] aguatico"); { printf("\n Digite sua opcao: "); fflush (stdin); scanf("%c", &opcao); switch(opcao) case'1': printf("\n[1] carnivoro"); printf("\n[2] herbivoro"); { printf("\n Digite sua opcao: "); fflush (stdin); scanf("%c", &opcao); switch(opcao) case'1': printf("\n Leao!"); break; } { printf("\n Digite sua opcao: "); fflush (stdin); scanf("%c", &opcao); switch(opcao) case'1': printf("\n Cavalo"); break; } } } system("pause>null"); } while(opcao=!'4'); } -
Estou começando na programação e tenho algumas dúvidas sobre esse código do jogo da forca: #include <iostream> #include <stdlib.h> using namespace std; int main() { char entrada[21]; //Palavra secreta char letra[1]; //Letra que a pessoa digitou char letras[30]; //Letras char secreta[21]; //A letra certa e sua posição int tam; //O tamanho da palavra vai ser igual a ENTRADA int i; //(indice) Necessario pq vai usar array int chances; // Quando acabar elas acaba o jogo int acertos; // O numero de acertos equivale ao TAM bool verificacao; // Verifica se a pessoa digitou uma letra certa ou errada string dica; chances=6; tam=0; i=0; verificacao=false; acertos=0; cout << "O que seu adversario vai adivinhar? " << "\n"; cin >> entrada; //comando limpar tela system("cls"); cout << "Dica: "; cout << dica; cin >> dica; // O indice vai percorrer ENTRADA até o /0 (enter) pra verificar se tá certo e a posição //Char de arrays devem sempre terminar em /0 while(entrada != '\0') { i++; // O i vai percorrer a "entrada" de um por um,e que ainda não é o /0 tam++; // Cada palavra certa vai adicionar +1 em TAM, desde que i não seja o enter } //Vou preencher a "entrada" com asteristicos e cada palavra certa vai ser -1 asteristico for(i=0 ; i<21 ; i++) { //Enquanto i for menor que 21, i de secreta vai aparecer com * } //Enquanto o jogador tiver chances e acertos diferente de tam, irá aparecer as chances e palavras acertadas na tela inicio: while((chances > 0)&&(acertos < tam)){ cout << "Chances Restantes: " << chances << "\n"; cout << "Palavra Secreta: "; for(i=0 ; i<tam ; i++) { cout << secreta; } //O jogador vai digitar cout << "\n\n" << "Digite uma letra: "; cin >> letra[0]; //Armazenar na posição 0 // Se já tiver usado a letra, goto volta pro o inico for(i=0 ; i<tam ; i++){ if(letras == letra[0]) { system("cls"); cout << "\nLetra ja usada! \n"; goto inicio; } else { letras=letra[0]; } } for(i=0 ; i<tam ; i++) { if(entrada==letra[0]) { verificacao=true; // A letra dá posição vai ser copiada para secreta se for certa secreta=entrada; acertos++; // incrementa o total de acertos } } //Se acerto for igual a falso "not acerto = !acerto" diminui o numero de chances if(!verificacao) { chances--; } verificacao=false; system("cls"); if(verificacao=false) { system("cls"); cout << letra[0]; } } if(acertos==tam) { cout << "O jogador ganhou! "; } else { cout << "O jogador perdeu! "; } system("pause"); return 0; }
-
Crie uma estrutura chamada pessoa que seja capaz de armazenar o nome, o endereço, o CPF e a idade de 5 pessoas. fiz ate uma parte do código mas fica dando uns erros #include <iostream> #include <cstdlib> #include <cstring> typedef struct pessoa { char nome[60]; char endereco[60]; float cpf; int idade; }Pessoa; int main (){ cout << "Digite O Nome De alguem" << endl; cin >> pessoa.nome; cout << "Digite o Endereço Da Pessoa" << endl; cin >> pessoa.endereco; cout << "Digite o Cpf da Pessoa" << endl; cin >> pessoa.cpf ; cout << "Digite a Idade Da Pessoa" << endl; cin >> pessoa.idade ;
-
Ola a todos, tenho uma duvida quanto a programação de Arduíno. Gostaria de saber se o seguinte código foi escrito de forma correta ? Agradeço desde já a atenção de todos !
-
- c++
- programação
-
(e mais 1 )
Tags:
-
Olá, estou tentando criar um código em c++ com funções e procedimentos a um tempo, só que eles sempre retornam 0, se alguém puder me ajudar, agradeço. ;) Segue o código: #include <iostream> #include <stdlib.h> #include <stdio.h> #include<locale.h> #include<math.h> #include<cmath> using namespace std; void Triangulo(int la) { double b,h,r; printf("Por favor digite o valor da base e da altura: \n"); scanf("%i %i",&b,&h); r=(b*h)/2; printf("A área é: %i \n",r); } double Quadrado(int la, int b, int h) { double r; printf("Por favor digite o valor da base e da altura: \n"); scanf("%i %i",&b,&h); r=b*h; printf("A área é: %i ",r); return r; } int Menu(int la) { int b,h; switch(la) { case 3: printf("É um triângulo \n"); Triangulo(la); break; case 4: printf("É um quadrilátero \n"); Quadrado(la,b,h); break; case 5: printf("É um pentágono \n"); break; case 6: printf("É um hexágono \n"); break; } return la; } int main(int argc, char** argv) { setlocale(LC_ALL, "Portuguese"); int b,h,r,l; printf("Por favor insira a quantidade de lados da figura(3-6): "); scanf("%i",&l); Menu(l); system("pause"); return 0; }
-
Estou tentando programar um código cujo o mesmo faz um calculo de X/2+7, entretanto por algum motivo ele transforma todos os resultados em 7, e nao sei como resolver, estou meio perdido pois sou novo nisso... #include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { setlocale(LC_ALL,"Portuguese"); int sua_idade, idade_parapegar; printf("\n\n Qual a sua idade?"); scanf ("%d,&sua_idade"); idade_parapegar = sua_idade+7; printf("\n\n pro FBI nao bater na sua porta, va atras de gurias com : %d anos\n\n",idade_parapegar); return 0; }
-
Estou com problema nesse código, na verdade é uma duvida de como trabalhar melhor com string. Eu quero faze um programa e nele quero receber do usuario, o sexo, caso o usuario digite um nome no local do sexo e seja diferente de Masculino, Feminino... de mensagem de erro. #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { char nome [25], sexo; printf("Digite o nome \n"); scanf("%[\n]", &nome); printf("Digite o Sexo:\n Para feminino digite: F \n\n Para masculino digite; M \n"); scanf("%c",&sexo); if (sexo != 'f'|| 'F' || 'M' || 'm') printf("Sexo Invalido"); ... return 0; }
-
Então, preciso fazer um programa em c++ que duplique o valor do vetor se ele for um numero par, até ai tudo bem, e preciso trocar a ordem desse vetor ate a penultima posição, desde a primeira, isso que tá garrando aqui, se alguem puder dar uma olhada no meu codigo. #include <iostream> using namespace std; #define n 10 int main() { int a[n], temp; for (int i = 0; i<n; i++) { cin >> a[i]; } for (int i = 0; i<n; i++) { if (a[i] % 2 ==0) a[i]=a[i]*2; } for (int i = 0; i<n-1; i++) { temp=a[i]; a[i]=a[i+1]; temp=a[i]; a[i]=temp; } for (int i = 0; i<n; i++) { cout << a[i] << " " ; } return 0; }
-
Duvida 2 execicios escrever de 0 a 99 por extenso ao digitar um valor
BrunoPro postou um tópico no fórum C/C++
Boas galera. Estou em formação de iniciação a C++ de 50h, e completei 35h até agora, meu professor passou 50 exercícios para fim de semana, e estou com problema em 2 deles. Este nem entendi : O resultado da divisão inteira de um número inteiro por outro número inteiro pode sempre ser obtido utilizando-se apenas o operador de subtração. Assim, se quisermos calcular (7/2), basta subtrair o dividendo (2) ao divisor (7), sucessivamente, até que o resultado seja menor do que o dividendo. O número de subtrações realizadas corresponde ao quociente inteiro, conforme o exemplo seguinte: 7 - 2 = 5 5 - 2 = 3 3 - 2 = 1 Descreva um programa para o cálculo da divisão de um inteiro pelo outro. Note que se o dividendo for zero, esta é uma operação matematicamente indefinida. E o segundo exercicio é o seguinte escrever de 0 a 99 por extenso o numero, alguém me dá uma ajuda? #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <iostream> #include <locale> using namespace std; int main() { setlocale(LC_ALL, "Portuguese"); system ("color 1B"); int n,a,b,c; cout << "Insira um número de 0 a 99 e o retorno seja o número por extenso\n"; cout << "Insira o número : "; cin >> n; { switch (a) { case 0 : cout << "zero"; break; case 1 : cout <<"um"; break; case 2 : cout <<"dois"; break; case 3 : cout <<"tres"; break; case 4 : cout <<"quatro"; break; case 5 : cout <<"cinco"; break; case 6 : cout <<"seis"; break; case 7 : cout <<"sete"; break; case 8 : cout <<"oito"; break; case 9 : cout <<"nove"; break; } switch (b) { case 0 : cout <<"dez"; break; case 1 : cout <<"onze"; break; case 2 : cout <<"doze"; break; case 3 : cout <<"treze"; break; case 4 : cout <<"catorze"; break; case 5 : cout <<"quinze"; break; case 6 : cout <<"dezesseis"; break; case 7 : cout <<"dezassete"; break; case 8 : cout <<"dezoito"; break; case 9 : cout <<"dezanove"; break; } switch (c) { case 2 : cout <<"vinte"; break; case 3 : cout <<"trinta"; break; case 4 : cout <<"quarenta"; break; case 5 : cout <<"cinquenta"; break; case 6 : cout <<"sessenta"; break; case 7 : cout <<"setenta"; break; case 8 : cout <<"oitenta"; break; case 9 : cout <<"noventa"; break; } } { if (n >=20 && n<100) cout << c << a; } { if ( n>10 && n<20) cout <<b; } { if (n<=10) cout <<a << c; } return 0; } -
Bom dia Pessoal, estou tendo problemas para mostrar na tela dados do telefone em um código para cadastro de clientes, alguém pode me ajudar? aqui como eu coletei os dados: aqui como estou tentando mostrar na tela:o que fiz de errado?
-
Meu professor passou uma prova pra casa para entregar na sexta feira e eu ainda não tive tempo de fazer nada e ainda tenho mais outra prova no mesmo dia. E definitivamente icc não tá como prioridade. Alguém pode pelo amooor me ajudar? porque assim, máximo respeito pelos programadores viu? É muita paciência que vocês tem! 1. Ele pede pra implementar um programa que tenha funções de soma, subtração, multiplicação e divisão que opere 2 números e retorne a sua respectiva operação. 2. Implementar uma função que receba a quantidade de faltas no trabalho e retorne o salario mensal de um funcionario, cuja diaria é 100,00 de acordo com o numero de dias trabalhados. Tem essa formula aqui: dias_trabalhados=30-falta_no_mes salario_mensal=dias_trabalhadosx100 3. Implantar um procedimento que receba 3 números e exiba-os em ordem crescente. Desde já muita gratidão por todos que tirarem um tempinho do tempo pra me salvar. Att.
-
Estou tentando fazer um programa para cadastro de clientes, para o aprendizado apenas, estou com um erro que nao consigo resolver, cadastro algumas pessoas mas na hora de fazer a pesquisa desses cadastros eu coloco o cpf de uma e aparece as informacoes da proxima pessoa na fila de arrays. E quando tento pesquisar alguma pessoa que nao esteja no array 0 cai no else CPF INVALIDO, Ai vai o codigo: #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> char nome[50] [50]; char email[50] [50]; int cpf[50]; int op; int i = 0; int a; int cpfpesquisa; char emailpesquisa[50]; using namespace std; void pesquisa (); void cadastro(); int main() { do{ cadastro(); pesquisa(); }while(op == 2); system ("PAUSE"); return 0; } void cadastro() { do{cout << "-----CADASTRO-----" << endl << endl; cout << "NOME: " ; cin >> nome; cout << endl <<"EMAIL: "; cin >> email; cout << endl << "CPF: "; cin >> cpf; cout << endl << "PARA CONTINUAR CADASTRANDO DIGITE 1"; cin >> op; i++; }while(op == 1); } void pesquisa () { do{ cout << "DIGITE 1 PARA PESQUISAR POR CPF E 2 PRA PESQUISAR POR EMAIL "; cin >> op; switch(op) { case 1: cout << "DIGITE O CPF: "; cin >> cpfpesquisa; for(a=0;a<50;a++) { if(cpfpesquisa == cpf[a]) {cout << "NOME: " << nome[a] << endl << "EMAIL: " << email[a] << endl; break;} else{ cout << "CPF INVALIDO!"; }break;}break; case 2: cout << "DIGITE O EMAIL: "; cin >> emailpesquisa; for(a=0;a<50;a++){ if (strcmp( emailpesquisa,email[a])) { cout << "NOME: " << nome[a] << endl << "CPF: " << cpf[a] << endl; break;} } } cout << endl << "PARA CONTINUAR A PESQUISAR DIGITE 1" << endl << "PARA VOLTAR A CADASTRAR DIGITE 2 "; cin >> op; }while (op ==1); }
-
Construir um algoritmo em C++ que preencha um matriz quadrada de tamanho 4
christin cley postou uma questão Perguntas e respostas rápidas
Construir um algoritmo em C++ que preencha um matriz quadrada de tamanho 4 pelo usuário. Após o preenchimento pelo usuário, verifique na diagonal principal qual foi o maior valor digitado e exiba na tela o valor. Por fim, exiba na tela toda matriz em forma de matriz na tela. -
Faça um Programa em Linguagem C que receba o nome e a nota de 180 alunos de uma sala e armazene em vetor. Calcule e mostre: - A média da sala; - O nome do aluno com a maior nota; - O nome do aluno com a menor nota; - Os nomes dos alunos aprovados; O meu código é esse : #define N 180 int main() { int i, ind_maior, ind_menor; float nota[N], soma=0, media, min_aprov=7; char nome[N][50]; for (i=0; i printf("Informe o nome do %dº aluno: ", i+1); gets(nome); printf("Informe a nota do %dº aluno: ", i+1); scanf(" %d ", ¬a); soma += nota; } media = soma / N; printf("\nMédia da sal: %.2f\n", media); ind_menor = ind_maior = 0; for (i=1; i if (nota < nota[ind_menor]) ind_menor = i; if (nota > nota[ind_maior]) ind_maior = i; } printf("Menor nota: %s com %.2f\n", nome[ind_menor], nota[ind_menor]); printf("Maior nota: %s com %.2f\n", nome[ind_maior], nota[ind_maior]); printf("Aprovados:"); for (i=0; i if (nota >= min_aprov) printf("\t%s com: %.2f\n", nome, nota); } return 0; } Porém quando vou executa-lo, o programa pede para inserir o nome e nota do aluno apenas uma vez, e fica por isso, ele não exibe os resultados, alguém pode me ajudar ?
-
Pessoal,estou fazendo uma serie de exercícios em c++ e to me batendo muito em um exercício aqui,poderiam me ajudar? Construir um algoritmo em C++ que preencha um matriz quadrada de tamanho 4 pelo usuário. Após o preenchimento pelo usuário, verifique na diagonal principal qual foi o maior valor digitado e exiba na tela o valor. Por fim, exiba na tela toda matriz em forma de matriz na tela.
-
[C++] Ao compilar o programa ele não faz nada e simplesmente fecha
matheusxds12 postou um tópico no fórum C/C++
Gostaria de saber qual o problema com o meu código pois ao compilar e executar ele simplesmente abre o DOS e fecha sem realizar nenhuma tarefa #include <stdlib.h> #include <stdio.h> #include <locale.h> // aux1 = contador de coluna e aux2 = contador de linha int main () { setlocale(LC_ALL, "portuguese"); int m1, n1, m2, n2, matriz1[m1][n1], matriz2[m2][n2],matrizsoma[m1][n1],aux1,aux2,elemento,contadorlinha=0; printf("Entre com o número de linhas da 1ª matriz : "); scanf("%i",&m1); printf("Entre com o número de colunas da 1ª matriz : "); scanf("%i",&n1); printf("Entre com o número de linhas da 2ª matriz : "); scanf("%i",&m2); printf("Entre com o número de colunas da 2ª matriz : "); scanf("%i",&n2); if ((m1==m2) && (n1==n2)){ for (aux2 = 0;aux2<m1;aux2++){ for (aux1=0;aux1<n1;aux1++){ contadorlinha=aux1+1; printf("Matriz A:"); printf("Entre com os elementos um a um, separados por espaço da %iª linha: ",contadorlinha); scanf("%i",&elemento); matriz1[aux2][aux1]=elemento; } } for (aux2 = 0;aux2<m2;aux2++){ for (aux1=0;aux1<n2;aux1++){ contadorlinha=aux1+1; printf("Matriz B:"); printf("Entre com os elementos um a um, separados por espaço, da %iª linha: ",contadorlinha); scanf("%i",&elemento); matriz2[aux2][aux1]=elemento; } } for (aux2=0;aux2<m1;aux2++){ for(aux1=0;aux1<n1;aux1++){ matrizsoma[aux2][aux1]=matriz1[aux2][aux1]+matriz2[aux2][aux1]; } } printf("Matriz C = A + B:\n"); for (aux2=0;aux2<m1;aux2++){ for(aux1=0;aux1<n1;aux1++){ printf("%i",matrizsoma[aux2][aux1]); } printf("\n"); } } else{ printf("\nParâmetros das matrizes inválidos para a soma!\n"); printf("Ambas devem ter o mesmo número de linhas e colunas\n"); } system("pause"); return 0; } -
Olá, estou tentando fazer um programa para o problema do caixeiro comprador exato (TPP ou PCCo) e, depois de fazer algumas pesquisas, eu encontrei o código a baixo e gostaria conseguir compilar e executar para comparar com a minha implementação. O problema é que não consigo compilar o código. Fica dando, esses erros(Também segue na foto): " /tmp/ccvk9cDb.o: Na função "work()": main.cpp:(.text+0x104e): relocação truncada para caber: R_X86_64_PC32 contra símbolo não definido "pop" na seção .bss em /tmp/ccvk9cDb.o main.cpp:(.text+0x106e): relocação truncada para caber: R_X86_64_PC32 contra símbolo não definido "pop" na seção .bss em /tmp/ccvk9cDb.o main.cpp:(.text+0x1152): relocação truncada para caber: R_X86_64_PC32 contra símbolo não definido "pop" na seção .bss em /tmp/ccvk9cDb.o main.cpp:(.text+0x12b4): relocação truncada para caber: R_X86_64_PC32 contra símbolo não definido "pop" na seção .bss em /tmp/ccvk9cDb.o /tmp/ccvk9cDb.o: Na função "__static_initialization_and_destruction_0(int, int)": main.cpp:(.text+0x1526): relocação truncada para caber: R_X86_64_PC32 contra ".bss" main.cpp:(.text+0x1539): relocação truncada para caber: R_X86_64_PC32 contra ".bss" collect2: error: ld returned 1 exit status " Esse é o código: ////////////////////////////////////////////////////////////////////////////////////////////// #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #include <algorithm> #include <queue> #include <map> #include <set> #include <vector> #include <string> #include <stack> #include <bitset> #include"instance_access.h" #define INF 0x3f3f3f3f #define eps 1e-8 #define FI first #define SE second using namespace std; typedef long long ll; const int MaxM = 25, MaxK = 700; int M, K, Q; int G[MaxM + 5][MaxM + 5]; int P[MaxM + 5][MaxK + 5]; int C[MaxM + 5]; void read(char *p,int m,int k,int d,int h) { //scanf("%d%d", &M, &K); int* _graph; int* _price; //_graph->printMatrix(); //cout<<endl; //_price->printMatrix(); //cout<<endl; get_instance_largek(_graph,_price,m,k,p); //cout<<endl; for(int i=0;i<m;++i) { for(int j=0;j<m;++j) { int temp=_graph[i*m+j]; //cout<<temp<<" "; *(G + j)=temp; } //cout<<endl; } //cout<<endl; for(int i=0;i<m;++i) { for(int j=0;j<k;++j) { int temp=_price[i*k+j]; // cout<<temp<<" "; *(P + j)=temp; } // cout<<endl; } M=m; K=k; Q=h; for(int i=1;i<m;++i) { C=d; } } inline void ck(int &x, int v) { if(x > v) x = v; } int head[MaxM + MaxK + 10]; struct Edge { int nxt, to, cow, cost; Edge() {} Edge(int nxt, int to, int cow, int cost) : nxt(nxt), to(to), cow(cow), cost(cost) {} } ed[100000]; int ecnt, mx_flow, mi_cost; void init() { mx_flow = mi_cost = ecnt = 0; memset(head, -1, sizeof(head)); } void addedge(int u, int v, int cow, int cost) { ed[ecnt] = Edge(head, v, cow, cost); head = ecnt ++; ed[ecnt] = Edge(head[v], u, 0, -cost); head[v] = ecnt ++; } queue <int> q; int dis[MaxK + MaxM + 10], pre[MaxK + MaxM + 10], inq[MaxK + MaxM + 10]; bool Spfa(int S, int T) { memset(dis, 0x3f, sizeof(dis)); dis = 0; q.push(S); while(!q.empty()) { int u = q.front(); q.pop(); inq = 0; for(int e = head; ~e; e = ed[e].nxt) { if(!ed[e].cow) continue; int v = ed[e].to; if(dis[v] > dis + ed[e].cost) { dis[v] = dis + ed[e].cost; pre[v] = e; if(!inq[v]) { inq[v] = 1; q.push(v); } } } } return dis[T] != INF; } void End(int S, int T) { int flow = INF; for(int u = T; u != S; u = ed[pre ^ 1].to) { flow = min(flow, ed[pre].cow); } for(int u = T; u != S; u = ed[pre ^ 1].to) { ed[pre].cow -= flow; ed[pre ^ 1].cow += flow; mi_cost += flow * ed[pre].cost; } mx_flow += flow; } int minPrice(int s) { init(); int src = 0, dec = M + K+1; for(int i = 1; i < M; ++ i) { if(~s >> i & 1) continue; addedge(src, i, C, 0); for(int k = 0; k < K; ++ k) { if(P[k] == 0) continue; addedge(i, M + k+1, 1, P[k]); } } for(int i = 1; i <= K; ++ i) { addedge(M + i, dec, 1, 0); } while(Spfa(src, dec)) End(src, dec); if(mx_flow != K) return -1; return mi_cost; } int dp[MaxM + 1][1 << MaxM]; int pop[1 << MaxM]; void work() { int U = 1 << M; for(int i = 1; i < U; ++ i) { pop = pop[i >> 1] + (i & 1); } for(int i = 1; i < M; ++ i) { for(int j = 0; j < U; ++ j) { dp[j] = INF; } } for(int i = 1; i < M; ++ i) { dp[1 << i] = G[0]; } for(int s = 1; s < U; ++ s) { if(pop >= Q) continue; for(int i = 1; i < M; ++ i) { if(dp == INF) continue; for(int j = 1; j < M; ++ j) { if(s >> j & 1) continue; ck(dp[j][s | (1 << j)], dp + G[j]); } } } int ans = INF; for(int i = 0; i < U; ++ i) { if(pop > Q) continue; int f = minPrice(i); if(f == -1) continue; for(int j = 1; j < M; ++ j) { if(dp[j] == INF) continue; ck(ans, f + dp[j] + G[j][0]); } } printf("%d", ans); } int main(int argc,char *argv[]) { //arguments order: filename m k u q if(argc !=6) { cout<<"wrong number of arguments"; return 1; } int m,k,u,q; m=atoi(argv[2]); k=atoi(argv[3]); u=atoi(argv[4]); q=atoi(argv[5]); read(argv[1],m,k,u,q); time_t begin,end; cout<<"optimal object value: "; begin=clock(); work(); end=clock(); cout<<endl; cout<<"time: "; cout<<double(end-begin)/CLOCKS_PER_SEC<<endl; return 0; } ////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////"instance_acess.h"////////////////////////////////////////////////////////// #ifndef INSTANCE_ACCESS_H_INCLUDED #define INSTANCE_ACCESS_H_INCLUDED #include <string> #include <strstream> #include<iostream> #include<fstream> #include<string.h> using namespace std; int get_instance_largek(int *&graph, int *&product_distribution, int m,int k,char *p) { graph=new int[m*m]; product_distribution=new int[m*k]; for(int i=0;i<m;++i) { for(int j=0;j<m;++j) { graph[i*m+j]=0; } } for(int i=0;i<m;++i) { for(int j=0;j<k;++j) { product_distribution[i*k+j]=0; } } ifstream fin; fin.open(p); if(fin.is_open()) { string s; while(fin>>s) { if(s=="NODE_COORD_SECTION") { fin>>s; int num; double x[m]; double y[m]; for(int i=0;i<m;++i) { fin>>num; fin>>x; fin>>y; } for(int i=0;i<m;i++) { for(int j=0;j<m;j++) { double xd=x-x[j]; double yd=y-y[j]; int d=(int)(sqrt(xd*xd+yd*yd)+0.5); graph[i*m+j]=d; } } } if(s=="OFFER_SECTION") { fin>>s; int id; int num=0; for(int i=0;i<m;++i) { fin>>id; fin>>num; int product_id; int cost; int dem; for(int j=0;j<num;++j) { fin>>product_id; fin>>cost; product_distribution[i*k+product_id-1]=cost; fin>>dem; } } } } return 1; }else{ return 0; } } #endif // INSTANCE_ACCESS_H_INCLUDED //////////////////////////////////////////////////////////////////////////////////////////////
-
Seguinte, estou tentando criar um jogo da velha mas e está causando um erro ao compilar, aparece um erro dizendo->|error: cannot convert 'char (*)[3]' to 'char*' for argument '1' to 'bool verificaX(char*)', alguem sabe como posso resolver ???! (Aparentemente não ta dando pra armazenar o endereço do vetor casas dentro do ponteiro das funções... Obs: Aceito sugestões para melhorar meu código, grato.(Ignorem as bibliotecas inúteis) #include <iostream> #include <stdio.h> //Para função gets #include <stdlib.h> //Para função malloc #include <math.h> #include <iomanip> //JOGO DA VELHA using namespace std; int jogadas=0; bool verificaX(char *vetor); bool verificaO(char *vetor); int main(){ char casas[3][3]={' ',' ',' ',' ',' ',' ',' ',' ',' '}; int l=0,c=0; while(jogadas<9){ cout << "\t\t" << casas[0][0] << " | " << casas[0][1] << " | " << casas[0][2] << "\n"; cout << "\t\t_________\n"; cout << "\t\t" << casas[1][0] << " | " << casas[1][1] << " | " << casas[1][2] << "\n"; cout << "\t\t_________\n"; cout << "\t\t" << casas[2][0] << " | " << casas[2][1] << " | " << casas[2][2] << "\n\n\n"; cout << "Digite uma linha: "; cin >> l; cout << "Digite uma coluna: "; cin >> c; while(l<=0 || c <=0 || l>3 || c>3){ system("cls"); cout << "Linha ou Coluna não existe!"; cout << "Digite uma linha: "; cin >> l; cout << "Digite uma coluna: "; cin >> c; } system("cls"); if(jogadas%2==0){ casas[--l][--c]='X'; }else{ casas[--l][--c]='O'; } jogadas++; verificaX(casas); verificaO(casas); } if(verificaX){ cout << "Jogador X ganhou!"; }else if(verificaO){ cout << "Jogador O ganhou!"; }else{ cout << "Empate!"; } return(0); } bool verificaX(char *vetor){ int l,c; for(l=0;l<3;l++){ if(vetor[l][0] && vetor[l][1] && vetor[l][2] == 'X'){ jogadas=10; return true; }else if(vetor[0][c] && vetor[1][c] && vetor[2][c] == 'X'){ jogadas=10; return true; } c++; } return 0; } bool verificaO(char *vetor){ int l,c; for(l=0;l<3;l++){ if(*vetor[l][0]=='X' && *vetor[l][1]=='X' && *vetor[l][2] == 'X'){ jogadas=10; return o=true; }else if(*vetor[0][c]=='X' && *vetor[1][c]=='X' && *vetor[2][c] == 'X'){ jogadas=10; return o=true; } c++; } return 0; }
-
Faça um programa leia dois números inteiros e utilize uma função SOMAR que receba esses dois números por parâmetro e retorne a soma dos números inteiros existentes entre eles. Sou iniciante em programação e tentei fazer o programa da tal forma: #include<stdlib.h> #include<math.h> #include<stdio.h> int SOMAR((((int soma;i;n1;n2)))) { return; for (i=n1+1; i<n2; i++) { soma += i; } } int main() { int n1, n2; printf("Informe os números: "); scanf("%d %d", &n1, &n2); printf("\nSoma: %d\n", SOMAR(soma)); return 0; system ("pause"); } Não roda por vários motivos e sinceramente sei nem como resolver
- 1 resposta
-
armazenar uma palavra em uma lista encadeada
alexkbw postou um tópico no fórum Docker, Kubernets e outros ambientes
ola, preciso de ajuda estou aprendendo C++ e nao consigo criar uma lista encadeada que armazene palavras segue o codigo: // listaEncadeada.cpp : Este arquivo contém a função 'main'. A execução do programa começa e termina ali. #include "pch.h" #include "conio.h" #include "string" #include<iostream> using namespace std; struct lista { char c; int n; struct lista*p; }; struct lista * inserirn(char,int); struct lista * prim; void inserir() { char c; int n; printf("\ninforme uma cor :"); scanf_s("%s", &c); printf("\ninforme um numero:"); scanf_s("%d", &n); inserirn(c,n); } struct lista * inserirn(char c,int n) { struct lista *novo, *aux; novo = (struct lista*)malloc(sizeof(struct lista)); if (novo!=NULL)//caso nao aja memoria { novo->n= n; novo->c = c; novo->p = NULL; if (prim==NULL) { prim = novo; } else { aux = prim; while (aux->p != NULL) { aux = aux->p; } aux->p = novo; } } return novo; } int main() { prim = NULL; inserir(); inserir(); inserir(); _getch(); }-
- lista encadeada
- c++
-
(e mais 1 )
Tags: