Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''C++''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Calendários

  • Comunidade iMasters

Todas as áreas do Fórum

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento Web
    • Desenvolvimento frontend
    • Javascript
    • PHP
    • Ruby
    • Python
    • Java
    • .NET
    • Docker, Kubernets e outros ambientes
    • Desenvolvimento com Wordpress
    • Desenvolvimento de apps
    • Desenvolvimento ágil
    • Desenvolvimento de Games
    • Banco de Dados
    • Design e UX
    • Algoritmos & Outras Tecnologias
  • Entretenimento e uso pessoal
    • Segurança & Malwares
    • Geral
    • Boteco iMasters

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Encontrado 65 registros

  1. 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!
  2. JoJoba2018

    Árvore AVL código

    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; }
  3. É possível verificar a ocorrência de um caractere em negrito em uma planilha do Excel utilizando c/c++?
  4. #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.
  5. 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; }
  6. 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'); }
  7. Marcosdev

    (Duvidas) Jogo da Forca em C++

    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; }
  8. 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 ;
  9. Leidsman217

    Código para Arduíno com LDR

    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 !
  10. 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; }
  11. FeEDIT

    Código que calcula x/2+7

    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; }
  12. Thalysson Torres

    Algum poderia me ajudar com umas duvidas de string

    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; }
  13. joaov369

    Inversão de valores de um vetor em c++

    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; }
  14. 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; }
  15. 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?
  16. picsartisticc

    Dúvida de uma agrônoma em ICC

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

    PROGRAMA DE CADASTRO DE CLIENTES

    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); }
  18. 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.
  19. vinicius.benedito98

    Dúvida com vetor em C++

    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 ", &nota); 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 ?
  20. Vitor Dória

    Dúvida em exercícios em c++

    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.
  21. 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; }
  22. ross

    Problema na compilação/execução

    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 //////////////////////////////////////////////////////////////////////////////////////////////
  23. 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; }
  24. C.SALLES

    Dev c++ duvida em problema

    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
  25. 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(); }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.