Jump to content

Search the Community

Showing results for tags 'c++'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 174 results

  1. 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.
  2. 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 ?
  3. 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.
  4. 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; }
  5. 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 //////////////////////////////////////////////////////////////////////////////////////////////
  6. 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; }
  7. 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
  8. 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(); }
  9. /* Desenvolver um programa para realizar a correção de um prova de múltipla escolha. Os dados iniciais a serem lidos são: - A quantidade de candidatos (N) e - A quantidade de questões aplicadas (M). As respostas possíveis que poderão ser aceitas são: A, B, C, D e E. O primeiro conjunto de dados a ser lido será o gabarito com as respostas corretas das M questões. Após o gabarito, serão lidos os nomes as respostas de cada candidato. Os valores das questões são iguais. A nota máxima é 10 e a de classificação é 5. As estruturas que deverão ser utilizadas são: O programa deverá: a) Gerar o vetor NOTA; b) Apresentar o relatório geral contendo o nome do candidato e sua nota; c) Calcular e apresentar a média geral dos candidatos; d) Apresentar a quantidade e o percentual de classificados e desclassificados; e) Apresentar o relatório de candidatos classificados; f) Apresentar a melhor nota obtida e seu(s) respectivo(s) candidato(s); g) Gerar o vetor ACERTOS com o percentual correspondente e apresentá-lo. */ #include <iostream> using namespace std; // torna desnecessária o uso do comando standard (std) antes das variáveis main() { setlocale(LC_ALL,"Portuguese"); int M[2][2],l, c, nota=0, soma=0, media=0, i=0, j=0; string nome[j]; cout<<"Digite seu nome"<<endl; cin>>nome[j]; for(l=0;l<2;l++) { for (c=0;c<2;c++) { cout<<"["<<l<<"]["<<c<<"] : "; cin>>M[l][c]; } } for (l=0;l<2;l++) { for (c=0;c<2;c++) { cout<<M[l][c]<<" "; } cout<<endl; } cout<<"Matriz A "<<" Vetor B "<<endl; for (l=0;l<2;l++) { soma=0; for (c=0;c<2;c++) { cout<<M[l][c]<<" | "; soma=soma+M[l][c]; media=soma/3; } cout<<" = "<<media<<endl; } cout<<"Somatório da colunas: "<<endl; for (c=0;c<2;c++) { soma=0; for (l=0;l<2;l++) { soma=soma+M[l][c]; } cout<<soma<<endl; } cout<<"Somatório da Diagonal: "<<endl; for (l=0;l<2;l++) { soma=0; for (l=0;l<2;l++) { soma=soma+M[l][l]; } cout<<soma<<endl; } } A pergunta é, como imprimir os nomes na coluna 0 e linhas de 1 a 5 e como fazer para que as respostas possíveis que poderão ser aceitas sejam: A, B, C, D e E?
  10. Não estou conseguindo entender esse programa em c , tem como me ajudar? Escreva um programa que armazene 40 elementos reais em um vetor. Mostrar o vetor e informar quantos números existem em cada faixa: Faixa 1 -> 1 - 100 Faixa 2 -> 200 - 450 Faixa 3 -> 501 - 745.5 Faixa 4 -> 800.5 - 920.9
  11. Cartilho

    Implementação do Radix sort

    Ao executar o meu .cpp ele tem feito tudo corretamente com todos os metodos, menos o radix, ele tem q calcular os tempos e fazer a media depois, ele não tem feito isso com o radix e não sei oq fazer, preciso muito de ajuda e uma solução, ja tentei de tudo, mas não sou bom em C++. link para ver funcionando: https://www.onlinegdb.com/fork/rkRmSLk24 #include <stdio.h> #include <time.h> #include <stdlib.h> #include <limits.h> #include <string.h> #include <chrono> #include <unistd.h> #include <iostream> using namespace std; int *v, *v1, *v2, *v3, *v4, *v5, *v6, *v7; //------------------------------------------------------------------------------------- void bubbleSort(int v[], int n) { bool trocou; int k = n; do { trocou = false; k--; for (int i = 0; i < k; i++) if (v[i+1] < v[i]) { int aux = v[i+1]; v[i+1] = v[i]; v[i] = aux; trocou = true; } } while (trocou); } //------------------------------------------------------------------------------------- void insertionSort(int v[], int n) { int i, j, chave; for (j = 1; j < n; j++) { chave = v[j]; i = j - 1; while (i >= 0 && v[i] > chave) { v[i+1] = v[i]; i--; } v[i+1] = chave; } } //------------------------------------------------------------------------------------- void selectionSort(int v[], int n) { int i, j, min; for(i = 0; i < n-1; i++) { min = i; for (j = i + 1; j < n; j++) if (v[j] < v[min]) min = j; if (min != i) { int temp = v[min]; v[min] = v[i]; v[i] = temp; } } } //------------------------------------------------------------------------------------- void shellSort(int v[], int n) { int i , j , valor; int h = 1; while(h < n) { h = 3*h+1; } while (h > 1) { h /= 3; for(i = h; i < n; i++) { valor = v[i]; j = i - h; while (j >= 0 && valor < v[j]) { v [j + h] = v[j]; j -= h; } v [j + h] = valor; } } } //------------------------------------------------------------------------------------- void quickSort1(int v[], int ini, int fim) { int i = ini; int j = fim; int pivo = v[(ini+ fim)/2]; // Pivo e o elemento central do { while (v[i] < pivo && i < fim) i++; while (pivo < v[j] && j > ini) j--; if (i <= j) { int aux = v[i]; v[i] = v[j]; v[j] = aux; i++; j--; } } while (i <= j); if (ini < j) quickSort1(v,ini,j); if (i < fim) quickSort1(v,i,fim); } void quickSort(int v[], int tam) { quickSort1(v, 0, tam-1); } //------------------------------------------------------------------------------------- void intercala(int v[], int aux[], int ini, int meio, int fim) { int i = ini, j = fim, k; for (k = ini; k <= meio; k++) aux[k] = v[k]; for (k = meio+1; k <= fim; k++) aux[fim + meio + 1 - k] = v[k]; for (k = ini; k <= fim; k++) if (aux[i] <= aux[j]) v[k] = aux[i++]; else v[k] = aux[j--]; } void mergeSort1(int v[], int aux[], int ini, int fim) { if (ini < fim) { int meio = (ini + fim) / 2; mergeSort1(v, aux, ini, meio); mergeSort1(v, aux, meio+1, fim); intercala(v, aux, ini, meio, fim); } } void mergeSort(int v[], int n) { int *aux = (int *) malloc(n * sizeof(int)); mergeSort1(v, aux, 0, n-1); free(aux); } //------------------------------------------------------------------------------------- int getMax(int v[], int tam) { int max = v[0]; for (int i = 1; i < tam; i++) if (v[i] > max) max = v[i]; return max; } void countSort(int v[], int tam, int exp) { int output[tam], i, count[10] = {0}; for (i = 0; i < tam; i++) count[(v[i] / exp) % 10]++; for (i = 1; i < 10; i++) count[i] += count[i-1]; for (i = tam - 1; i >= 0; i--) { output[count[(v[i] / exp) % 10] - 1] = v[i]; count[(v[i] / exp) % 10]--; } for (i = 0; i < tam; i++) v[i] = output[i]; } void radixsort(int v[], int tam) { int exp, m; m = getMax(v, tam); for (exp = 1; m/exp > 0; exp *= 10) countSort(v, tam, exp); } //------------------------------------------------------------------------------------- void gerar(int v[], int tam) { srand((unsigned int)time(NULL)); for (int i = 0; i < tam; i++) v[i] = rand() % 100000001; } //------------------------------------------------------------------------------------- void copiar(int origem[], int destino[], int n) { for (int i = 0; i < n; i++) destino[i] = origem[i]; } //------------------------------------------------------------------------------------- bool verifica(int v[], int n) { for (int i = 0; i < n-1; i++) if (v[i] > v[i+1]) return false; return true; } //------------------------------------------------------------------------------------- void inverte(int v[], int n) { for (int i = 0, j = n-1; i < n/2; i++,j--) v[i] = v[j]; } //------------------------------------------------------------------------------------- int main(void) { chrono::steady_clock::time_point start, end; long double cpu_time; int tam, iter; char metodos[100]; long double tempo[] = { 0, 0, 0, 0, 0, 0 }; tam = 0; printf("Quantos numeros? "); scanf("%d", &tam); getchar(); if (tam <= 0) return 0; printf("Selecione os metodos:\n 1-Bubble sort\n 2-Selection sort\n 3-Insertion sort\n 4-Shell sort\n 5-Quicksort\n 6-Mergesort\n 7-Radix sort\nMetodos: "); gets(metodos); printf("Quantas execucoes (1, 2, 3, ...)? "); scanf("%d", &iter); getchar(); if (iter <= 0) return 0; v = (int *) malloc(tam * sizeof(int)); v1 = (int *) malloc(tam * sizeof(int)); v2 = (int *) malloc(tam * sizeof(int)); v3 = (int *) malloc(tam * sizeof(int)); v4 = (int *) malloc(tam * sizeof(int)); v5 = (int *) malloc(tam * sizeof(int)); v6 = (int *) malloc(tam * sizeof(int)); v7 = (int *) malloc(tam * sizeof(int)); for (int i = 1; i <= iter; i++) { printf("------------------------------------------------\nExecucao %d:\n------------------------------------------------\n", i); printf("Gerando %d elementos...\n", tam); gerar(v, tam); copiar(v, v1, tam); copiar(v, v2, tam); copiar(v, v3, tam); copiar(v, v4, tam); copiar(v, v5, tam); copiar(v, v6, tam); copiar(v, v7, tam); // bubble if (strchr(metodos, '1') != NULL) { printf("Bubble sort...\n"); start = chrono::steady_clock::now(); bubbleSort(v1, tam); end = chrono::steady_clock::now(); cpu_time = chrono::duration_cast<chrono::nanoseconds>(end - start).count() / (long double) 1000000.0; printf("%s. Tempo: %lf ms (%lf s)\n", verifica(v1, tam) ? "OK":"ERRO", cpu_time, cpu_time/1000); tempo[0] += cpu_time; } // selection if (strchr(metodos, '2') != NULL) { printf("Selection sort...\n"); start = chrono::steady_clock::now(); selectionSort(v3, tam); end = chrono::steady_clock::now(); cpu_time = chrono::duration_cast<chrono::nanoseconds>(end - start).count() / (long double) 1000000.0; printf("%s. Tempo: %lf ms (%lf s)\n", verifica(v3, tam) ? "OK":"ERRO", cpu_time, cpu_time/1000); tempo[1] += cpu_time; } // insertion if (strchr(metodos, '3') != NULL) { printf("Insertion sort...\n"); start = chrono::steady_clock::now(); insertionSort(v2, tam); end = chrono::steady_clock::now(); cpu_time = chrono::duration_cast<chrono::nanoseconds>(end - start).count() / (long double) 1000000.0; printf("%s. Tempo: %lf ms (%lf s)\n", verifica(v2, tam) ? "OK":"ERRO", cpu_time, cpu_time/1000); tempo[2] += cpu_time; } // shell if (strchr(metodos, '4') != NULL) { printf("Shell sort...\n"); start = chrono::steady_clock::now(); shellSort(v4, tam); end = chrono::steady_clock::now(); cpu_time = chrono::duration_cast<chrono::nanoseconds>(end - start).count() / (long double) 1000000.0; printf("%s. Tempo: %lf ms (%lf s)\n", verifica(v4, tam) ? "OK":"ERRO", cpu_time, cpu_time/1000); tempo[3] += cpu_time; } // quick if (strchr(metodos, '5') != NULL) { printf("Quick sort...\n"); start = chrono::steady_clock::now(); quickSort(v5, tam); end = chrono::steady_clock::now(); cpu_time = chrono::duration_cast<chrono::nanoseconds>(end - start).count() / (long double) 1000000.0; printf("%s. Tempo: %lf ms (%lf s)\n", verifica(v5, tam) ? "OK":"ERRO", cpu_time, cpu_time/1000); tempo[4] += cpu_time; } // merge if (strchr(metodos, '6') != NULL) { printf("Merge sort...\n"); start = chrono::steady_clock::now(); mergeSort(v6, tam); end = chrono::steady_clock::now(); cpu_time = chrono::duration_cast<chrono::nanoseconds>(end - start).count() / (long double) 1000000.0; printf("%s. Tempo: %lf ms (%lf s)\n", verifica(v6, tam) ? "OK":"ERRO", cpu_time, cpu_time/1000); tempo[5] += cpu_time; } //radixsort if (strchr(metodos, '7') != NULL) { printf("Radix sort...\n"); start = chrono::steady_clock::now(); radixsort(v7, tam); end = chrono::steady_clock::now(); cpu_time = chrono::duration_cast<chrono::nanoseconds>(end - start).count() / (long double) 1000000.0; printf("%s. Tempo: %lf ms (%lf s)\n", verifica(v7, tam) ? "OK":"ERRO", cpu_time, cpu_time/1000); tempo[6] += cpu_time; } } if (iter > 1) { printf("-------------------------------------------\nTempos medios:\n"); if (strchr(metodos, '1') != NULL) printf("Bubble sort: %lf ms (%lf s)\n", tempo[0]/iter, tempo[0]/(iter*1000)); if (strchr(metodos, '2') != NULL) printf("selection sort: %lf ms (%lf s)\n", tempo[1]/iter, tempo[1]/(iter*1000)); if (strchr(metodos, '3') != NULL) printf("Insertion sort: %lf ms (%lf s)\n", tempo[2]/iter, tempo[2]/(iter*1000)); if (strchr(metodos, '4') != NULL) printf("Shell sort: %lf ms (%lf s)\n", tempo[3]/iter, tempo[3]/(iter*1000)); if (strchr(metodos, '5') != NULL) printf("Quick sort: %lf ms (%lf s)\n", tempo[4]/iter, tempo[4]/(iter*1000)); if (strchr(metodos, '6') != NULL) printf("Merge sort: %lf ms (%lf s)\n", tempo[5]/iter, tempo[5]/(iter*1000)); if (strchr(metodos, '7') != NULL) printf("Radix sort: %lf ms (%lf s)\n", tempo[6]/iter, tempo[6]/(iter*1000)); } free(v); free(v1); free(v2); free(v3); free(v4); free(v5); free(v6); free(v7); }
  12. Aprendi a mexer no C++ a um mês porem não sei muto bem como faz algumas coisas, preciso acrescentar isso no meio dele int ckdig (int n, int* p, int* i) { int d = 0; if(n < 0) n = -n; *p = *i = 0; while(n) { if((n % 2) == 0) (*p)++; else (*i)++; n /= 10; d++; } return d; } int main (int argc, char** argv) { int n, p, i, d; puts("Digite um número:"); scanf("%d", &n); d = ckdig(n, &p, &i); printf("Dentre os %d dígitos, há %d pares e %d ímpares.\n", d, p, i); return 0; } porem tem que usar os números que eu coloco dentro do vetor deixei um em //Pares e impares para colocar o comando //Bibliotecas #include <stdio.h> #include <locale.h> //cria uma constante #define N 6 int main() { //Variaveis int vet[N], i, maior, menor,soma=0,*p,*m,d; //preenche o vetor printf("Digite N :\n"); for (i = 0; i < N; i++) { scanf("%i", &vet); } //encontra o maior valor maior = vet[0]; for (i = 1; i < N; i++) { if (vet > maior) { maior = vet; } } //encontra o menor valor menor = vet[0]; for (i = 1; i < N; i++) { if (vet < menor) { menor = vet; } } //calculo da soma for(i=0; i<N; i++){ soma=soma+vet; } //Acento (setlocale(LC_ALL,"")); //Impares e Pares //Comando na tela printf("\nA soma é: %i ", soma); printf("\nMaior valor: %i ", maior); printf("\nMenor valor: %i ", menor); return 0; }
  13. Estou desenvolvendo um programa para trabalho de faculdade onde preciso usar estrutura de repetição para perguntar ao usuario um nome/itens armazena-los e quando o usuario nao quiser mais digitar os nomes ao sair do loop mostra todos os nomes que ele digitou. nao estou conseguindo preciso de ajuda. dese ja agradeço. meu codigo ate o momento e: #include <stdio.h> #include<stdlib.h> int main (){ char lista,lista2; int menu1,menu2; printf("***BEM-VINDO AO LISTSUPER***\n\n"); // ****Aqui o 1º menu de seleção****// printf("Escolha uma opção\n"); printf("1-inserir novos itens\n2-inserir quantidade\n3-calcular valor\n4-mostrar itens\n\n"); scanf("%i",&menu1); // ***Aqui e o loop para digitar os itens desejados****// if (menu1==1){ while(1) { printf("insira os itens\n"); scanf("%s",&lista); printf("deseja inserir novos itens? [1-sim/2-nao]\n"); scanf("%i",&menu2); if (menu2==2){ break;} } } // ***Caso ele não selecione a opção para inserir novos itens aparecera esta mensagem***// else { printf("Não ha itens inseridos\nEscolha a opção ( inserir novos itens )"); } //***Apos acabar de digitar os itens mostrar a lista dos itens digitados***// return 0; }
  14. Davi DEVV

    Dúvida sobre algoritmo.

    Alguem pode me ajudar com esse algoritmo,fiz esse porem quando digito 10000 ele cai nos dois ultimos ifs.. Sabendo que o reajuste dos imposto de renda será de 7% para renda de até R$ 5.000,00, de 8% para rendas até R$ 8.000,00 e de 10% para rendas superiores a R$ 8.000,00, dado uma renda qualquer defina qual é o imposto a ser aplicado #include <bits/stdc++.h> using namespace std; int main() { float imposto,salario,deduzir,deduzir1,deduzir2; printf("\nDigite seu salario"); scanf("%f",&salario); if(salario==5000.00){ printf("Seu imposto é de 350R$"); } if(salario==8000.00);{ printf("Seu imposto é de 640R$"); } if(salario>8000.00){ printf(" O seu imposto é de 800 R$"); } return 0; }
  15. Tava fazendo um exercício e ele pede pro programa exibir os 20 primeiros números primos depois do 100. Por enquanto eu fiz ele assim mas não sei onde colocar o num++ pra ir aumentando o valor do numero a ser testado. Ja tentei colocar em varios lugares do codigo e nao deu certo em nenhum deles e tb nao consigo achar oq tem de errado
  16. Faça um algoritmo para automatizar o registro de Comanda de Lanchonete. É necessário elaborar o algoritmo representando o contexto mais real do dia a dia do registro de comanda. OBS: Tem que ser considerado a comanda abaixo.
  17. Lincoln Ferreira de Jesus

    Jogos feitos com C++

    Olá, estou começando a aprender a linguagem c++ e eu gostaria de saber alguns exemplos de jogos feitos com puro c++ sem engine nem nd. Pra eu ter uma noção de quanto um desenvolvedor vai sem usar uma engine =) obrigado.
  18. desde pequeno sempre tive esse desejo ardente de poder contar uma historia através de um jogo, com um ótimo game play, historia envolvente e dinâmica etc... então assim que completei meus 16 anos, resolvi começar a pesquisar mais sobre a criação de jogos, e a uns meses atras resolvi começar a estudar c++. eu tambei baixei o Godot, que é uma engine boa para criação de jogos e esta ganhando uma certa fama ultimamente, e tambem tem suporte a c++. bem, ainda não estou programando nenhum game porque estou na metade dos meus estudos sobre c++ ainda, mais queria algumas dicas: *é necessário estudar outras linguagens da programação para programar jogos? se sim quais vocês recomendam? * Existe algum livro em pdf que poderia me ajudar mais a estudar c++? *Ultimamente fiquei com duvida se realmente conseguiria fazer um jogo bom em c++, então poderiam me dar exemplos de jogos legais feitos em c++? enfim, se quiserem me der outras dica ficarei feliz, sou relativamente um iniciante quando se trata de desenvolver jogos(ja tentei fazer uma coisa ou 2 no rpgmaker vxace mas como não sabia nada de programação e só usava os recursos do programa, saia tudo cagado ksksksks) então adoraria saber de dicas dos mais experientes no assunto :v
  19. Preciso criar um programa que faça 3 execuções: A soma de todos os números pares não primos que antecedem N; A soma de todos os números ímpares não primos que antecedem N; A soma de todos os números primos que antecedem N. Mas não sei como, sei imprimir os primos, pares e impares ate n, mas fazer a soma não.
  20. Milleny Melo

    Atividade para calcular quantidade de notas

    Se alguém puder ajudar ficaria agradecida :) Crie um programa em C que calcule quantas notas de 50, 10 e 1 são necessárias para se pagar uma conta cujo valor é fornecido pelo usuário.
  21. Milleny Melo

    Atividade para calcular quantidade de notas

    Se alguém puder ajudar ficaria agradecida :) Crie um programa em C que calcule quantas notas de 50, 10 e 1 são necessárias para se pagar uma conta cujo valor é fornecido pelo usuário.
  22. Pessoal, já estou um bom tempo programando em C. Agora quero programar em C++ orientado a objetos. Então, por favor. Me ajudem por onde devo começar?
  23. como fazer um programa que calcule potencia e raiz quadrada, porém, só utilizando operações de adição e subtração para isto?
  24. Beleza galera, nesse meu primeiro post, quero compartilhar esse video onde inicio um tutorial básico pra aprender a programar em c++, só que de maneira prática. Um programa simples que eu escrevi pra fazer o cálculo da metragem cúbica de peças de madeira que eu beneficio aqui na minha pequena marcenaria. Um programa simples que me ajuda a executar uma tarefa tediosa, e que apresenta um conhecimento básico na programação em c++. Então resolvi fazer dele um tutorial prático para iniciantes. Nesse primeiro video eu apresento um esboço inicial pra entender o que o programa vai fazer. Conforme for desenvolvendo o programa, vou apresentando novos conceitos gradativamente. Espero que gostem. https://www.youtube.com/watch?v=Obr8Jrp7LGQ
  25. Não consigo apresentar as palavras equivalentes conseguem me ajudar??? O código é o seguinte: #include <stdio.h> char equivale(int ddd){ switch(ddd){ case 61: return "Brasilia"; break; case 71: return "Salvador"; break; case 11: return "Sao Palo"; break; case 21: return "Rio de Janeiro"; break; case 32: return "Juiz de Fora"; break; case 19: return "Campinas"; break; case 27: return "Vitoria"; break; case 31: return "Belo Horizonte"; break; } } int main(){ int ddd; scanf("%d",&ddd); equivale(ddd); printf("%d",equivale(ddd)); }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.