
AdrianoSiqueira
Membro Pleno-
Posts
1.273 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que AdrianoSiqueira postou
-
C Como utilizar printf para printar ponteiros
AdrianoSiqueira respondeu ao tópico de Francine Guimarães em C/C#/C++
-
C Como utilizar printf para printar ponteiros
AdrianoSiqueira respondeu ao tópico de Francine Guimarães em C/C#/C++
@KXSY Estranho, não tive nenhum erro quando compilei no GCC no Linux. -
C Como utilizar printf para printar ponteiros
AdrianoSiqueira respondeu ao tópico de Francine Guimarães em C/C#/C++
Tenta desse jeito: #include <stdio.h> #include <stdlib.h> #include <string.h> #define limparTela system("clear") // No Windows mude para "cls" typedef struct Contato { char nome[255]; char nascimento[11]; char telefone[14]; char rua[255]; char numero[10]; char bairro[255]; char cidade[255]; char estado[3]; char cep[10]; struct Contato *proximo; } Contato_t; /** * Pausa o programa até o usuário apertar ENTER. */ void apertarEnter() { printf("\n[ ENTER ] "); if (getchar() == '\n') getchar(); } /** * Adiciona um novo contato na lista. * * @param primeiro Primeiro elemento da lista. */ void adicionar(Contato_t *primeiro) { while (primeiro->proximo != NULL) { primeiro = primeiro->proximo; } primeiro->proximo = malloc(sizeof(Contato_t)); limparTela; printf(">> Adicionar \n"); printf("Nome: "); scanf(" %[^\n]s", primeiro->proximo->nome); printf("Data de nascimento: "); scanf(" %[^\n]s", primeiro->proximo->nascimento); printf("Telefone: "); scanf(" %[^\n]s", primeiro->proximo->telefone); printf("Rua: "); scanf(" %[^\n]s", primeiro->proximo->rua); printf("Número: "); scanf(" %[^\n]s", primeiro->proximo->numero); printf("Bairro: "); scanf(" %[^\n]s", primeiro->proximo->bairro); printf("Cidade: "); scanf(" %[^\n]s", primeiro->proximo->cidade); printf("Estado: "); scanf(" %[^\n]s", primeiro->proximo->estado); printf("CEP: "); scanf(" %[^\n]s", primeiro->proximo->cep); primeiro->proximo->proximo = NULL; printf("\n"); printf("Contato adicionado com sucesso. \n"); apertarEnter(); } /** * Percorre todos os elementos da lista e imprime cada um deles. * @param primeiro Primeiro elemento da lista. */ void imprimir(Contato_t *primeiro) { /* * Como o primeiro elemento da lista não tem nada, esse flag é usado para * pular a impressão desse elemento. */ int flag = -1; limparTela; printf(">> Relatório \n"); while (primeiro != NULL) { if (++flag == 0) { primeiro = primeiro->proximo; continue; } printf("------------------------------------------- \n"); printf(" Nome: %s \n", primeiro->nome); printf("Nascimento: %s \n", primeiro->nascimento); printf(" Telefone: %s \n", primeiro->telefone); printf(" Rua: %s \n", primeiro->rua); printf(" Número: %s \n", primeiro->numero); printf(" Bairro: %s \n", primeiro->bairro); printf(" Cidade: %s \n", primeiro->cidade); printf(" Estado: %s \n", primeiro->estado); printf(" CEP: %s \n", primeiro->cep); printf("------------------------------------------- \n"); primeiro = primeiro->proximo; } apertarEnter(); } int main() { char opcao = '0'; // O primeiro elemento deve ser inicializado Contato_t primeiro; strcpy(primeiro.nome, ""); strcpy(primeiro.nascimento, ""); strcpy(primeiro.telefone, ""); strcpy(primeiro.rua, ""); strcpy(primeiro.numero, ""); strcpy(primeiro.bairro, ""); strcpy(primeiro.cidade, ""); strcpy(primeiro.nome, ""); strcpy(primeiro.estado, ""); primeiro.proximo = NULL; do { limparTela; printf("[ 1 ] - Adicionar \n"); printf("[ 2 ] - Imprimir \n"); printf("[ 0 ] - Sair \n"); printf("> "); scanf(" %c", &opcao); switch (opcao) { case '1': adicionar(&primeiro); break; case '2': imprimir(&primeiro); break; default: break; } } while (opcao != '0'); limparTela; return 0; } -
import javax.swing.JOptionPane; public class Main { public static void main(String[] args) throws NumberFormatException { double liqPst = Double.parseDouble(JOptionPane.showInputDialog("Informe o valor líquido da Pens: ")); double cotaBruta = Double.parseDouble(JOptionPane.showInputDialog("Informe o valor da cota pens bruta: ")); double somaConsig = Double.parseDouble(JOptionPane.showInputDialog("Informe a Soma Consig tipo Empréstimo N em Andam: ")); double margBruPres = (cotaBruta * 0.30); if (liqPst > 0) { AccountSGC account = new AccountSGC(liqPst, cotaBruta, somaConsig, margBruPres); account.calcularMargemConsig(); JOptionPane.showMessageDialog(null, "Margem Consignável: " + account.getMargemConsig(), "margemConsig", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(null, "Valor líquido NEGATIVO: " + liqPst, "liqPst", JOptionPane.INFORMATION_MESSAGE); } } private static class AccountSGC { private double liqPst; private double cotaBruta; private double somaConsig; private double margBruPres; private double margemConsig; public AccountSGC(double liqPst, double cotaBruta, double somaConsig, double margBruPres) { this.liqPst = liqPst; this.cotaBruta = cotaBruta; this.somaConsig = somaConsig; this.margBruPres = margBruPres; } public double getLiqPst() { return liqPst; } public void setLiqPst(double liqPst) { this.liqPst = liqPst; } public double getCotaBruta() { return cotaBruta; } public void setCotaBruta(double cotaBruta) { this.cotaBruta = cotaBruta; } public double getSomaConsig() { return somaConsig; } public void setSomaConsig(double somaConsig) { this.somaConsig = somaConsig; } public double getMargBruPres() { return margBruPres; } public void setMargBruPres(double margBruPres) { this.margBruPres = margBruPres; } public double getMargemConsig() { return margemConsig; } public void calcularMargemConsig() { margemConsig = (liqPst + somaConsig - margBruPres) * 1.00; } } } adicionado 1 minuto depois Para aceitar vírgula, você tem que receber os dados em forma de string e fazer os devidos tratamentos para substituir a vírgula por ponto. adicionado 1 minuto depois Depois disso, você converte para double.
-
Java JPanel Movível Como uma Janela
AdrianoSiqueira respondeu ao tópico de Bluely em Java/Android SDK
Segue um exemplo funcional feito com Swing: import javax.swing.JFrame; import javax.swing.JLabel; import java.awt.Point; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; public class Janela extends JFrame { private Point initialClick; public Janela() { configurar(); } public static void main(String[] args) { new Janela(); } private void configurar() { this.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { initialClick = e.getPoint(); getComponentAt(initialClick); } }); this.addMouseMotionListener(new MouseMotionAdapter() { @Override public void mouseDragged(MouseEvent e) { int thisX = getLocation().x; int thisY = getLocation().y; int xMoved = e.getX() - initialClick.x; int yMoved = e.getY() - initialClick.y; int X = thisX + xMoved; int Y = thisY + yMoved; setLocation(X, Y); } }); this.setTitle("Janela de Teste"); this.getContentPane().add(new JLabel("Conteúdo da sua janela")); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.pack(); this.setLocationRelativeTo(null); this.setVisible(true); } } -
Não sei se está retornando o valor correto, mas o código não tem mais erros. import javax.swing.JOptionPane; public class Main { public static void main(String[] args) throws NumberFormatException { int liqPst = Integer.parseInt(JOptionPane.showInputDialog("Informe o valor líquido da Pens: ")); int cotaBruta = Integer.parseInt(JOptionPane.showInputDialog("Informe o valor da cota pens bruta: ")); int somaConsig = Integer.parseInt(JOptionPane.showInputDialog("Informe a Soma Consig tipo Empréstimo N em Andam: ")); double margBruPres = (cotaBruta * 0.30); if (liqPst > 0) { AccountSGC account = new AccountSGC(liqPst, cotaBruta); account.setMargemConsig(somaConsig, margBruPres); JOptionPane.showMessageDialog(null, "Margem Consignável: " + account.getMargemConsig(), "margemConsig", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(null, "Valor líquido NEGATIVO: " + liqPst, "liqPst", JOptionPane.INFORMATION_MESSAGE); } } private static class AccountSGC { private double liqPst; private double cotaBruta; private double margemConsig; public AccountSGC(float liqPst, float cotaBruta) { this.liqPst = liqPst; this.cotaBruta = cotaBruta; } public double getLiqPst() { return liqPst; } public void setLiqPst(float liqPst) { this.liqPst = liqPst; } public double getCotaBruta() { return cotaBruta; } public void setCotaBruta(float cotaBruta) { this.cotaBruta = cotaBruta; } public double getMargemConsig() { return margemConsig; } public void setMargemConsig(int somaConsig, double margBruPres) { margemConsig = (liqPst + somaConsig - margBruPres) * 1.00; } } }
-
C Inverte Vetor e encontrar o Maior e Melhor em C
AdrianoSiqueira respondeu ao tópico de eduardobraz em C/C#/C++
@Eduardo_Braz Seu código tem uma série de erros: 1- Suas variáveis precisam ser inicializadas, caso contrário elas conterão lixo de memória. int n = 0, vetor[1000], maior = 0, menor = 0, i = 0, j = 0; // Inicializa todas as posições do vetor for (i = 0; i < 1000; ++i) { vetor[i] = 0; } 2- Não precisa economizar linhas, elas são de graça. Fazer todas as declarações em uma única linha, torna massante o trabalho de ler seu código. int n = 0; int vetor[1000]; int maior = 0; int menor = 0; int i = 0; int j = 0; 3- Recomendo inicializar as variáveis maior e menor usando os limites do tipo primitivo. Assim é quase certo que o valor será sobrescrito quando for a hora. Para isso é necessário importar a biblioteca limits.h. // Inclua a biblioteca #include <limits.h> // Depois inicialize as variáveis int maior = INT_MIN; int menor = INT_MAX; 4- Use nomes mais coerentes nas variáveis. int tamanho = 0; // Antigo n 5- Diga ao usuário o que ele tem fazer. printf("Digite o tamanho do vetor: "); scanf(" %d", &tamanho); 6- Para atribuir e acessar um valor do vetor, é necessário informar a posição desejada. for (i = 0; i < tamanho; i++) { printf("Digite o valor %i: ", (i + 1)); scanf(" %d", &vetor[i]); } 7- A verificação para determinar o maior e menor pode ser feita usando if aninhado. e deve ser feita dentro de um loop. for (i = 0; i < tamanho; ++i) { if (i == 0) { maior = vetor[i]; menor = vetor[i]; } else if (vetor[i] > maior) { maior = vetor[i]; } else if (vetor[i] < menor) { menor = vetor[i]; } } 8- A variável j é dispensável. // Antes usava o j for (i = tamanho - 1; i >= 0; i--) { printf("%d ", vetor[i]); } 9- Garanta que o tamanho esteja em uma faixa válida. do { printf("Digite o tamanho do vetor: "); scanf(" %d", &tamanho); } while (tamanho < 2 || tamanho > 1000); -
Tenta assim: #include <stdio.h> #include <stdlib.h> int main() { char nome[255] = {}; char telefone[15] = {}; char cpf[15] = {}; char rg[13] = {}; char endereco[255] = {}; char sexo = ' '; int idade = 0; printf("Diga seu nome: "); scanf(" %[^\n]s", nome); printf("Diga seu sexo: "); scanf(" %c", &sexo); printf("Diga sua idade: "); scanf(" %i", &idade); printf("Diga seu telefone: "); scanf(" %s", telefone); printf("Diga seu CPF: "); scanf(" %s", cpf); printf("Diga seu RG: "); scanf(" %s", rg); printf("Diga seu endereço: "); scanf(" %[^\n]s", endereco); printf("------------------------------------- \n"); printf(" Nome: %s \n", nome); printf("Endereço: %s \n", endereco); printf("Telefone: %s \n", telefone); printf(" RG: %s \n", rg); printf(" CPF: %s \n", cpf); printf(" Sexo: %c \n", sexo); printf(" Idade: %i \n", idade); printf("------------------------------------- \n"); }
-
C concatenação de string com comando
AdrianoSiqueira respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
Para concatenar strings faça assim: #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char string1[20]; char string2[40]; strcpy(string1, "String 1"); strcpy(string2, "String 2"); strcat(string1, string2); // string1 recebe string2 no final printf("String 1: %s \n", string1); printf("String 2: %s \n", string2); return 0; } -
Ou poderia acrescentar a variável a depois de imprimir seu valor. while (a <= n) { printf("%d\t", a); a++; }
-
Tenta isso: #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int quantidade = 100; // Quantidade de elementos int limiteDe = 0; // Limite inicial int limiteAte = 0; // Limite final int soma = 0; // Somatória int vetor[quantidade]; // Vetor com os valores printf("Limite de: "); scanf(" %i", &limiteDe); printf("Limite até: "); scanf(" %i", &limiteAte); limiteAte = limiteAte - limiteDe + 1; srand((unsigned) time(NULL)); // Preencher o vetor for (int i = 0; i < quantidade; ++i) { vetor[i] = rand() % limiteAte + limiteDe; } // Realizar a soma for (int i = 1; i < quantidade; ++i) { soma += (vetor[i] - vetor[i - 1]); } printf("Soma: %i \n", soma); return 0; }
-
C Vetor que gere 10 elementos
AdrianoSiqueira respondeu ao tópico de Ana Clara Alves Nunes em C/C#/C++
Cria os dois primeiros vetores com valores fixos. Depois você percorre cada posição do primeiro vetor comparando com cada posição do segundo (pode usar um for dentro do outro, ou uma função). Caso os valores sejam iguais, você verifica se esse valor já existe no terceiro vetor, caso não exista, você adiciona. Use uma variável inteira para representar a posição de inserção no terceiro vetor, assim fica mais fácil de percorrê-lo depois. -
#include <stdio.h> #include <stdlib.h> #include <string.h> void imprimir(char mensagem[], int vetor[], int tamanho, int entrada, int soma) { printf("%i = ", entrada); for (int i = 0; i < tamanho; ++i) { printf("%i", vetor[i]); if (i + 1 < tamanho) { printf(" + "); } } printf(" = %i (%s)", soma, mensagem); } int main() { int entrada = 0; int soma = 0; int insercao = 0; char mensagem[255] = ""; printf("Digite um número: "); scanf(" %i", &entrada); int vetor[entrada]; for (int i = 1; i < entrada; ++i) { if (entrada % i == 0) { vetor[insercao] = i; soma += i; insercao += 1; } } if (entrada == soma) { strcpy(mensagem, "perfeito"); } else { strcpy(mensagem, "imperfeito"); } imprimir(mensagem, vetor, insercao, entrada, soma); return 0; }
-
C Desenvolver Programa com Vetores aleatórios
AdrianoSiqueira respondeu ao tópico de Ana Clara Alves Nunes em C/C#/C++
imprimirArray é uma função eu criei, dá uma olhada antes da função main e abaixo das linhas de #include. Sim, é possível fazer sem, mas aí acaba repetindo linhas de código. -
C Desenvolver Programa com Vetores aleatórios
AdrianoSiqueira respondeu ao tópico de Ana Clara Alves Nunes em C/C#/C++
Poderia ser assim: #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <limits.h> #include <time.h> bool presente(int vetor[], int tamanho, int valor) { for (int i = 0; i < tamanho; ++i) { if (vetor[i] == valor) { return true; } } return false; } void imprimeArray(char nome[], int vetor[], int tamanho) { printf("%s [ ", nome); for (int i = 0; i < tamanho; ++i) { printf("%i, ", vetor[i]); } printf("] \n"); } int main() { int maximo = 20; // Tamanho dos vetores int insercao = 0; // Posição de inserção no vetor único int vetor[maximo]; // Vetor com as informações int vetorUnico[maximo]; // Vetor com os valores únicos srand((unsigned) time(NULL)); // Inicializa o primeiro vetor for (int i = 0; i < maximo; ++i) { vetor[i] = rand() % 30 + 1; } // Inicializa o vetor único com valores que serão sobrescritos for (int i = 0; i < maximo; ++i) { vetorUnico[i] = INT_MIN; } // Preenche o vetor único com os valores do primeiro vetor for (int i = 0; i < maximo; ++i) { if (!presente(vetorUnico, maximo, vetor[i])) { vetorUnico[insercao] = vetor[i]; insercao += 1; } } // Imprime tudo imprimeArray("Vetor", vetor, maximo); imprimeArray("Unico", vetorUnico, insercao); return 0; } Obs.: Perceba que na segunda chamada da função imprimeArray, eu passei o valor de insercao ao invés do tamanho máximo, isso porque não sabemos se o vetorUnico foi totalmente preenchido e para evitar que seja impresso lixo de memória, passamos o valor da última posição que foi inserido algum valor. -
C Desenvolver Programa com Vetores aleatórios
AdrianoSiqueira respondeu ao tópico de Ana Clara Alves Nunes em C/C#/C++
@Ana Clara Alves Nunes À vontade . -
C Desenvolver Programa com Vetores aleatórios
AdrianoSiqueira respondeu ao tópico de Ana Clara Alves Nunes em C/C#/C++
Algo assim deve resolver: #include <stdio.h> #include <stdlib.h> #include <time.h> void imprimirArray(char nome[], int array[], int maximo) { printf("%s [ ", nome); for (int i = 0; i < maximo; ++i) { printf("%i, ", array[i]); } printf("] \n"); } int main() { int maximo = 300; int vetor[maximo]; int vetorSoma[maximo - 1]; srand((unsigned) time(NULL)); // Inicializa o primeiro vetor for (int i = 0; i < maximo; ++i) { vetor[i] = rand() % 400 + 100; } // Preenche o segundo vetor for (int i = 0; i < maximo - 1; ++i) { vetorSoma[i] = vetor[i] + vetor[i + 1]; } // Imprime todos imprimirArray("Vetor", vetor, maximo); imprimirArray(" Soma", vetorSoma, maximo - 1); return 0; } Dica: Não crie um vetor de 300 posições logo de cara, faça algo menor, por exemplo com 10 posições. E ao invés de já preencher com valores aleatórios, preencha-o com valores fixos, assim fica mais fácil detectar problemas. Quando você ver que está tudo certo, aí você muda o tamanho e os valores que serão atribuídos. -
Porquê o Windows tem que ser instalado primeiro e o Linux depois?
AdrianoSiqueira respondeu ao tópico de Lucas10_2002 em Linux
Sem falar que o Windows substitui o bootloader do Linux e para piorar o bootloader do Windows não reconhece o Linux. -
Inverte a condição de parada do for. for(contver = 0; contver <= tam; contver++) { // ... }
-
Assim mostra a saída mais ou menos formatada: #include <stdio.h> int main() { for (int entrada = 1; entrada < 1000; entrada++) { int soma = 0; printf("%i = ", entrada); for (int i = 1; i < entrada; ++i) { if (entrada % i == 0) { soma += i; printf("%i + ", i); } } printf(" = %i (%s) \n", soma, (entrada == soma ? "perfeito" : "imperfeito")); } return 0; }
-
C++ Ler 50 notas e imprimir as 3 maiores
AdrianoSiqueira respondeu ao tópico de Noemia Silva em C/C#/C++
Se você puder usar vetor: #include <iostream> #include <climits> using std::cout; using std::cin; int main() { int maximo = 50; int notas[maximo]; int maior1 = INT_MIN; int maior2 = INT_MIN; int maior3 = INT_MIN; for (int i = 0; i < maximo; ++i) { cout << "Digite a nota[" << (i + 1) << " de " << maximo << "]: "; cin >> notas[i]; } for (int i = 0; i < maximo; ++i) { if (i == 0) { maior1 = notas[i]; } else if (notas[i] > maior1) { maior3 = maior2; maior2 = maior1; maior1 = notas[i]; } else if (notas[i] > maior2) { maior3 = maior2; maior2 = notas[i]; } else if (notas[i] > maior3) { maior3 = notas[i]; } } cout << "--------------------------------- \n" << "Maior 1: " << maior1 << "\n" << "Maior 2: " << maior2 << "\n" << "Maior 3: " << maior3 << "\n" << "--------------------------------- \n"; return 0; } Se por acaso você não puder usar vetor: #include <iostream> #include <climits> using std::cout; using std::cin; int main() { int maximo = 50; int entrada = 0; int maior1 = INT_MIN; int maior2 = INT_MIN; int maior3 = INT_MIN; for (int i = 0; i < maximo; ++i) { cout << "Digite a nota[" << (i + 1) << " de " << maximo << "]: "; cin >> entrada; if (i == 0) { maior1 = entrada; } else if (entrada > maior1) { maior3 = maior2; maior2 = maior1; maior1 = entrada; } else if (entrada > maior2) { maior3 = maior2; maior2 = entrada; } else if (entrada > maior3) { maior3 = entrada; } } cout << "--------------------------------- \n" << "Maior 1: " << maior1 << "\n" << "Maior 2: " << maior2 << "\n" << "Maior 3: " << maior3 << "\n" << "--------------------------------- \n"; return 0; } -
C preciso que me indiquem a melhor forma de fazer este codigo porque n estou conseguindo
AdrianoSiqueira respondeu ao tópico de ucas_santoss em C/C#/C++
Talvez assim? #include <stdio.h> #include <stdlib.h> #define limpar system("clear") // No Windows mude para "cls" struct Cidade { char nome[200]; int populacao; float lixo; }; int main() { int maximo = 10000; // Quantidade máxima de cidades int quantidade = 0; // Quantidade de cidades e posição de inserção struct Cidade cidades[maximo]; // Todas as cidades struct Cidade cidadeMaisLixo; // Cidade com mais lixo struct Cidade entrada; // Reservado para entrada de dados do { limpar; printf("Digite o nome: "); scanf(" %[^\n]s", entrada.nome); printf("Digite a população: "); scanf(" %i", &entrada.populacao); printf("Digite a quantidade de lixo: "); scanf(" %f", &entrada.lixo); if (entrada.populacao > 0) { cidades[quantidade] = entrada; quantidade += 1; } } while (entrada.populacao > 0 && quantidade < maximo); if (quantidade > 0) { cidadeMaisLixo = cidades[0]; for (int i = 1; i < quantidade; ++i) { if (cidades[i].lixo > cidadeMaisLixo.lixo) { cidadeMaisLixo = cidades[i]; } } printf("--------------------------------------- \n"); printf(" Nome: %s \n", cidadeMaisLixo.nome); printf("População: %i \n", cidadeMaisLixo.populacao); printf(" Lixo: %.2f \n", cidadeMaisLixo.lixo); printf("--------------------------------------- \n"); } return 0; } -
@The_Oicle Já que você está usando C++, uma possível abordagem poderia ser assim: #include <iostream> #include <map> using std::map; using std::string; using std::cout; using std::cin; using std::getline; int main() { map<string, string> combinacoes; combinacoes["AAAA"] = "1111"; combinacoes["BBBB"] = "2222"; combinacoes["CCCC"] = "3333"; combinacoes["DDDD"] = "4444"; combinacoes["EEEE"] = "5555"; string usuario = ""; string senha = ""; bool aprovado = false; for (int i = 0; i < 3 && !aprovado; ++i) { do { cout << "Digite o usuário: "; getline(cin, usuario); } while (usuario.length() < 4 || usuario.length() > 8); do { cout << "Digite a senha: "; getline(cin, senha); } while (senha.length() < 4 || senha.length() > 8); for (map<string, string>::iterator iterator = combinacoes.begin(); iterator != combinacoes.end(); iterator++) { if (iterator->first == usuario && iterator->second == senha) { aprovado = true; break; } } } if (aprovado) { cout << "Bem vindo" << "\n"; } else { cout << "Cai fora" << "\n"; } }
-
C++ Inicialização de um Vetor em Structs
AdrianoSiqueira respondeu ao tópico de Pedro Goulart Rodrigues em C/C#/C++
Se você está trabalhando com C++, poderia fazer assim: #include <iostream> using std::string; using std::to_string; using std::cout; struct Candidato { int numero; string nome; string partido; string cargo; Candidato() {} Candidato(int numero, string nome, string partido, string cargo) { this->numero = numero; this->nome = nome; this->partido = partido; this->cargo = cargo; } string toString() { return "-------------------------------------------------------\n" ">> Candidato \n" " Número: " + to_string(numero) + "\n" + " Nome: " + nome + "\n" + "Partido: " + partido + "\n" + " Cargo: " + cargo + "\n" + "-------------------------------------------------------\n"; } }; int main() { int max = 11; Candidato candidatos[max]; for (int i = 1; i <= max; ++i) { candidatos[i - 1] = Candidato(i, "Nome " + to_string(i), "Partido " + to_string(i), "Cargo " + to_string(i)); } for (int i = 0; i < max; ++i) { cout << candidatos[i].toString() << "\n"; } return 0; } -
C Retornar ao scanf e nao precisar comecar do inicio
AdrianoSiqueira respondeu ao tópico de Mayrinck Bernardo em C/C#/C++
Também poderia ser assim: #include <stdio.h> #include <stdbool.h> bool estaPresente(int valores[], int max, int valor) { for (int i = 0; i < max; ++i) { if (valores[i] == valor) { return true; } } return false; } int main() { int max = 7; int entrada = 0; int valores[max]; for (int i = 0; i < max; ++i) { valores[i] = 0; } for (int i = 0; i < max; ++i) { do { printf("Digite o valor [%i de %i]: ", (i + 1), max); scanf(" %i", &entrada); } while (estaPresente(valores, max, entrada)); valores[i] = entrada; } return 0; } Obs.: O valor de entrada não pode ser 0, senão a função acusa que já existe. Caso você precise permitir a entrada de 0, então mude a inicialização do vetor para um valor que você tenha certeza que NUNCA será digitado pelo usuário.
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais