
goldbach
Membros-
Total de itens
41 -
Registro em
-
Última visita
Tudo que goldbach postou
-
Para simplificar o resultado você vai precisar calcular o m.d.c e não o m.m.c, abaixo como fazê-lo: #include <stdio.h> int mdc(int x1, int x2); int main() { int numerador = 48; int denominador = 30; int _mdc; printf("%d/%d\n", numerador, denominador); _mdc = mdc(numerador, denominador); numerador = numerador / _mdc; denominador = denominador / _mdc; // Depois da simplificação printf("%d/%d", numerador, denominador); return 0; } // x1 > x2 int mdc(int x1, int x2) { int dividendo = x1; int divisor = x2; int resto = 1; while(resto) { resto = dividendo % divisor; dividendo = divisor; divisor = resto; } return dividendo; }
-
Eu não tenho esta instalação na minha máquina, na verdade nem um dos dois programas, mas o unico problema que eu vejo nisto é o compartilhamento da porta 80, que é a porta padrão de escuta de servidores WEB, logo você deve configurar eles para escutarem em portas distintas. Caso um servidor escutando em uma porta que não seja a padrão não seja satisfatório, você ainda pode usar uma máquina virtual.
-
É porque você não tem o modulo livewires insalado. Obs: Passe a traduzir as mensagens de erro.
-
Bom, o ideal é você procurar por uma IDLE especifica para o BackTrack5, mas se você que salvar os seus programas, um jeito fácil é usar qualquer editor de texo e salvar o código fonte com a extensão apropriada.
-
Se você esta usando o operador new sem ele estar sobrecarregado, o ponteiro retornado é apenas um endereço de memoria, e ele vai ser válido ate você libera-lo diretamente chamando delete ou se a classe tiver um destrutor e ela sair do escopo.Parece que não é o caso.
-
Você deve passar um ponteiro para a função: #include <stdio.h> void change(int *v1) { (*v1)++; } int main() { int v1 = 10; printf("v1 = %d\n", v1); change(&v1); printf("v1 = %d\n", v1); }
-
Poderia me dar um exemplo? Para tirar dúvidas eu fiz o seguinte: Apenas coloquei qtotal=1000; e mandei imprimir no LCD. Lá aparece -24. Muito estranho. printf (escreve_lcd,"%d",qtotal); se eu colocar %u, aparece 232. Esquisito. Vou continuar tentando. Deu certo, utilizei LONG INT e tudo funcionou!!! Obrigado!!!!!!!!!!!!!!!!! Disponha.
-
Tente usar Microsoft Speech API (SAPI). SAPI stdafx.h #define _ATL_APARTMENT_THREADED #include <atlbase.h> //You may derive a class from CComModule and use it if you want to override something, //but do not change the name of _Module extern CComModule _Module; #include <atlcom.h> main.cpp #include "stdafx.h" #include <sapi.h> int main(int argc, char* argv[]) { ISpVoice * pVoice = NULL; if (FAILED(::CoInitialize(NULL))) return FALSE; HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice); if( SUCCEEDED( hr ) ) { hr = pVoice->Speak(L"Hello world", 0, NULL); pVoice->Release(); pVoice = NULL; } ::CoUninitialize(); return TRUE; }
-
Ao invés de usar variaves do tipo inteiro, tente usar do tipo unsigned int.
-
C Completo e Total, 3ª edição Herbert Schildt Este livro me ajudou bastante, mas você so se torna bom com a pratica.Para ser bom em alguma coisa você precisa se dedicar 10.000 horas nisso.
-
Eu não entendo nada de eletrônica (apesar de ter um curso de manutenção eletrica industrial), mas me parece que o que você quer é: Dado quatro variaveis q1, q2, q3, q4 do tipo int, que representam o numeral 'q4q3q2q1', você que encontrar o valor total, logo: #include <stdio.h> int main() { int q1 = 0; int q2 = 0; int q3 = 0; int q4 = 5; int Qtotal; Qtotal = (q4 * 1000) + (q3 * 100) + (q2 * 10) + q1; printf("Qtotal = %d\n", Qtotal); }
-
Eu não trabalho com programação (espero ainda trabalhar), não fiz e nem faço faculdade relacionada a área, aprendi a programar lendo livros e tutoriais.
-
Por que 'A' ? Porque eu quero adicionar o clube no grupo 'A', se eu quiser adicionar o clube no grupo 'B' eu uso 'B', veja o que acontence : CLUB *groupA[4] = {0, 0, 0, 0}; CLUB *groupB[4] = {0, 0, 0, 0}; CLUB *groupC[4] = {0, 0, 0, 0}; CLUB *groupD[4] = {0, 0, 0, 0}; CLUB *groupE[4] = {0, 0, 0, 0}; CLUB *groupF[4] = {0, 0, 0, 0}; CLUB *groupG[4] = {0, 0, 0, 0}; CLUB *groupH[4] = {0, 0, 0, 0}; CLUB **GROUPS[] = {groupA, groupB, groupC, groupD, groupE, groupF, groupG, groupH}; void addGroup(CLUB *club, char group) { int i; for(i = 0; i < 4; i++) { if(!GROUPS[group - 65][i]) { GROUPS[group - 65][i] = club; break; } } } quando group == 'A' -> GROUPS[0] -> groupA qunado group == 'B' -> GROUPS[1] -> groupB ... É o mais claro que consigo ser. :)
-
Pense no que acontece quando você faz: addGroup(club, 'A'); Siga a função passo a passo.Fica como desafio.
-
É uma simples conversão, pois o valor do caractere 'A' é 65.
-
Eu estava num bom dia. :) /* Esta função usa quatro variaveis globais (pote1, pote2, pote3 e pote4), de modo que cada uma ira armazenar 8 clubes.O pote1 é preenchido com os 8 primeiros clubes; pote2 com os 8 seguintes e assim por diante. O que o codigo faz é percorrer o array clubs, e a cada 8 clubes passa para o próximo pote. */ void createPotes(CLUB *clubs) { CLUB **pote = pote1; // ponteiro usado para mudar de pote int i; int j; for(i = 0, j = 0; j < NCLUBS; i++, j++) { pote[i] = &clubs[j]; if(i == 7) { i = -1; if(j == 7) pote = pote2; else if(j == 15) pote = pote3; else if(j == 23) pote = pote4; } } printf("\n%s%20s%20s%20s\n","POTE 1", "POTE 2", "POTE 3", "POTE 4"); for(i = 0; i < 8; i++) { printf("%s%20s%20s%20s\n", pote1[i]->name, pote2[i]->name, pote3[i]->name, pote4[i]->name); } } /* Adiciona um clube a um determinado grupo (groupA, groupB ...) */ void addGroup(CLUB *club, char group) { int i; for(i = 0; i < 4; i++) { if(!GROUPS[group - 65][i]) { GROUPS[group - 65][i] = club; break; } } } /* Esta função sorteia um clube de um determinado pote e depois sorteia um grupo para qual este clube deve entrar (considerando-se as restrições). Para se sortear um clube, primeiramente é gerado um número aleatório no intervalo [0, 7], este número é usado como indice para retornar um determinado clube do pote, se o valor retornado for nulo (o clube já foi sorteado), um novo número no intervalo é sorteado, o processo se repete até retornar um clube diferente do pote. Para se sortear um grupo, o processo é semelhante ao descrito acima, a diferenca é que é usado um vetor de caracteres para representar os grupos. Após se sortear um clube e um grupo a função addGroup() é chamada. */ void rafflePote(CLUB *clubs, CLUB **pote) { CLUB *club; char group; char groups[] = "ABCDEFGH"; int r; int i; int j; for(j = 0; j < 8; j++) { for(;;) { r = rand() % 8; if(!pote[r]) continue; club = pote[r]; break; } pote[r] = NULL; // garante que este clube não sera sorteado novamente printf("\n\nClube Sorteado : %s\n", club->name); printf("Grupos Possiveis : "); for(i = 0; i < 8; i++) { if(groups[i]) printf("%c ", groups[i]); } printf("\n"); for(;;) { r = rand() % 8; if(!groups[r]) continue; group = groups[r]; break; } groups[r] = 0; // garante que este grupo não sera sorteado novamente printf("Grupo Sorteado : %c\n", group); addGroup(club, group); } }
-
Quais partes do código você não entendeu ?
-
Hoje eu gostaria de ajudar alguém, então eu fiz isto. #include <stdio.h> #include <stdlib.h> #include <time.h> #define NCLUBS 32 typedef struct CLUB { char *name; unsigned int ranking; }CLUB; CLUB clubs[32] = { "AC Milan " , 89996, "Ajax " , 58103, "Anderlecht " , 48480, "Arsenal " , 113882, "BATE Borisov " , 29641, "Bayern Munique " , 133037, "Benfica " , 87069, "Borussia Dortmund " , 31037, "Celtic " , 32728, "Chelsea " , 135882, "Cluj " , 18764, "Dinamo Kiev " , 62026, "Dinamo Zagreb " , 24774, "FC Barcelona " , 157837, "FC Nordsjaelland " , 8005, "FC Porto " , 98069, "Galatasaray " , 38310, "Juventus " , 46996, "Lille " , 38835, "Malaga " , 18690, "Manchester City " , 63882, "Manchester United " , 141882, "Montpellier " , 11835, "Olympiakos " , 61420, "Paris Saint-Germain" , 45835, "Real Madrid " , 121837, "Schalke 04 " , 78037, "Shakhtar Donetsk " , 84026, "Spartak Moscovo " , 46066, "Sporting Braga " , 63069, "Valencia " , 89837, "Zenit St Petersburg" , 79066 }; CLUB *pote1[8]; CLUB *pote2[8]; CLUB *pote3[8]; CLUB *pote4[8]; CLUB *groupA[4] = {0, 0, 0, 0}; CLUB *groupB[4] = {0, 0, 0, 0}; CLUB *groupC[4] = {0, 0, 0, 0}; CLUB *groupD[4] = {0, 0, 0, 0}; CLUB *groupE[4] = {0, 0, 0, 0}; CLUB *groupF[4] = {0, 0, 0, 0}; CLUB *groupG[4] = {0, 0, 0, 0}; CLUB *groupH[4] = {0, 0, 0, 0}; CLUB **GROUPS[] = {groupA, groupB, groupC, groupD, groupE, groupF, groupG, groupH}; void listClubs(CLUB *clubs) { int i = 0; for(i = 0; i < NCLUBS; i++) { printf("%s %6d \n", clubs[i].name, clubs[i].ranking); } } void sortClubs(CLUB *clubs) { int i, j; int temp1; char *temp2; for(i = 1; i < NCLUBS; i++) { for(j = NCLUBS - 1; j >= i; j--) { if(clubs[j - 1].ranking < clubs[j].ranking) { temp1 = clubs[j - 1].ranking; temp2 = clubs[j - 1].name; clubs[j - 1].ranking = clubs[j].ranking; clubs[j - 1].name = clubs[j].name; clubs[j].ranking = temp1; clubs[j].name = temp2; } } } } void createPotes(CLUB *clubs) { CLUB **pote = pote1; int i; int j; for(i = 0, j = 0; j < NCLUBS; i++, j++) { pote[i] = &clubs[j]; if(i == 7) { i = -1; if(j == 7) pote = pote2; else if(j == 15) pote = pote3; else if(j == 23) pote = pote4; } } printf("\n%s%20s%20s%20s\n","POTE 1", "POTE 2", "POTE 3", "POTE 4"); for(i = 0; i < 8; i++) { printf("%s%20s%20s%20s\n", pote1[i]->name, pote2[i]->name, pote3[i]->name, pote4[i]->name); } } void addGroup(CLUB *club, char group) { int i; for(i = 0; i < 4; i++) { if(!GROUPS[group - 65][i]) { GROUPS[group - 65][i] = club; break; } } } void rafflePote(CLUB *clubs, CLUB **pote) { CLUB *club; char group; char groups[] = "ABCDEFGH"; int r; int i; int j; for(j = 0; j < 8; j++) { for(;;) { r = rand() % 8; if(!pote[r]) continue; club = pote[r]; break; } pote[r] = NULL; printf("\n\nClube Sorteado : %s\n", club->name); printf("Grupos Possiveis : "); for(i = 0; i < 8; i++) { if(groups[i]) printf("%c ", groups[i]); } printf("\n"); for(;;) { r = rand() % 8; if(!groups[r]) continue; group = groups[r]; break; } groups[r] = 0; printf("Grupo Sorteado : %c\n", group); addGroup(club, group); } } void listGroups() { int i; printf("\n%s%20s%20s%20s\n","GRUPO A", "GRUPO B", "GRUPO C", "GRUPO D"); for(i = 0; i < 4; i++) { if(!groupA[i]) break; printf("%s%20s%20s%20s\n", groupA[i]->name, groupB[i]->name, groupC[i]->name, groupD[i]->name); } printf("\n%s%20s%20s%20s\n","GRUPO E", "GRUPO F", "GRUPO G", "GRUPO H"); for(i = 0; i < 4; i++) { if(!groupA[i]) break; printf("%s%20s%20s%20s\n", groupE[i]->name, groupF[i]->name, groupG[i]->name, groupH[i]->name); } } int main() { srand(time(NULL)); printf("\nSORTEIO DA FASE DE GRUPOS DA LIGA DOS CAMPEOES\n"); printf("\nClubes apurados para a fase de grupos\n\n"); listClubs(clubs); sortClubs(clubs); printf("\nClubes apurados para a fase de grupos ordenados por ranking\n\n"); listClubs(clubs); printf("\nDistribuicao dos clubes pelos potes\n"); createPotes(clubs); printf("\nSorteio do pote 1\n"); rafflePote(clubs, pote1); printf("\nGrupos apos sorteio pote 1\n"); listGroups(); printf("\nSorteio do pote 2\n"); rafflePote(clubs, pote2); printf("\nGrupos apos sorteio pote 2\n"); listGroups(); printf("\nSorteio do pote 3\n"); rafflePote(clubs, pote3); printf("\nGrupos apos sorteio pote 3\n"); listGroups(); printf("\nSorteio do pote 4\n"); rafflePote(clubs, pote4); printf("\nGrupos apos sorteio pote 4\n"); listGroups(); return 0; }
-
Bom ... se eu entende, você que executar um aplicativo e quando fizer isto, seja solicitado permissão de administrador.Certo ? Dois modos: 1. Use um manifesto. Manifest 2. Crie um instalador pro seu aplicativo; basicamente crie um aplicativo que extrai o código do aplicativo principal pro disco e chame a função ShellExecute para executá-lo.
-
Se você que evitar que o programa pessa autorização toda vez que for executado, a solução é realmente o comando Runas, seu uso é explicado no link que eu te mandei, mas resumidamente você vai fazer o seguinte : 1.Criar um atalho com o seguinte caminho: runas /savecred /user:lievore “c:\MeuAplicativo.exe”. 2.Executar o atalho e entrar com a senha de administrador. 3.Executar o atalho, desta vez não será necessário mais a senha.
-
Para executar um aplicativo como administrador, você pode usar o código : #include <Windows.h> #include <Shellapi.h> int main() { char *application = "c:\\windows\\system32\\notepad.exe"; // substitua pelo aplicativo (script) que você quer executar ShellExecute(NULL, "runas", application, NULL, NULL, SW_SHOWDEFAULT); } Existe também o comando Runas do prompt de comando, abaixo o link de como usá-lo: Runas
-
Um pouco de café ... e milhões de linhas de código depois, aí está: #include <stdio.h> // as datas devem estar no formato dd/mm/yyyy int getNumberDays(const char *startDate, const char *endDate) { int month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int startDay; int startMonth; int startYear; int endDay; int endMonth; int endYear; int nDays = 0; startDay = ((startDate[0] & 0xF) * 10) + (startDate[1] & 0xF); startMonth = ((startDate[3] & 0xF) * 10) + (startDate[4] & 0xF); startYear = ((startDate[6] & 0xF) * 1000) + ((startDate[7] & 0xF) * 100) + ((startDate[8] & 0xF) * 10) + (startDate[9] & 0xF); endDay = ((endDate[0] & 0xF) * 10) + (endDate[1] & 0xF); endMonth = ((endDate[3] & 0xF) * 10) + (endDate[4] & 0xF); endYear = ((endDate[6] & 0xF) * 1000) + ((endDate[7] & 0xF) * 100) + ((endDate[8] & 0xF) * 10) + (endDate[9] & 0xF); if(startDay == endDay && startMonth == endMonth && startYear == endYear) return 0; if(!(startYear % 4)) { if(startYear % 100) month[1] = 29; // ano bissesto else if(!(startYear % 400)) month[1] = 29; // ano bissesto } for(;;) { int i; for(i = 1; i < 13; i++) { if(startMonth == i) { if(startDay == month[i - 1]) // se é o ultimo dia do mês { startDay = 1; if(startMonth != 12) { startMonth++; } else // se é o ultimo mês do ano { startMonth = 1; startYear++; if(!(startYear % 4)) { if(startYear % 100) month[1] = 29; // ano bissesto else { if(!(startYear % 400)) month[1] = 29; else month[1] = 28; } } else month[1] = 28; } } else { startDay++; } break; } } nDays++; if(startDay == endDay && startMonth == endMonth && startYear == endYear) return nDays + 1; } } int main() { printf("Days = %d\n", getNumberDays("01/01/2013", "31/12/2013")); return 0; }
-
Recursividade em SelectSort e InsertSort sem repetição
pergunta respondeu ao Alessandra Alves de goldbach em C, C++
Vou tentar te explicar ... Você disse que seu professor restringiu o uso da instrução for, o que eu quis te mostrar é como substituir essa instrução.Vou explicar o que eu fiz com a função method1(): .Localizei a instrução for. .Substitui a instrução for por um rótulo. .Coloquei o código que ira se repetir "dentro" do rótulo. .Usei a instrução goto para repetir este "bloco" de código. .Inicializei as variaveis necessárias antes da declaração do rótulo. .Coloquei o código que encerra o ciclo no final do rótulo. Para que você entenda melhor, eu implementei duas funções: selectionSort() e selectionSort1(),as duas são recursivas e somente a primeira faz uso da instrução for, contudo ambas conseguem ordenar um vetor de inteiros. #include <stdio.h> void selectionSort(int *input, int length, int startIndex) { if(startIndex >= length - 1) return; int minIndex = startIndex; for(int index = startIndex + 1; index < length; index++) { if (input[index] < input[minIndex]) { minIndex = index; } } int temp = input[startIndex]; input[startIndex] = input[minIndex]; input[minIndex] = temp; selectionSort(input, length, startIndex + 1); } void selectionSort1(int *input, int length, int startIndex) { if(startIndex >= length - 1) return; int minIndex = startIndex; // start loop for int index = startIndex + 1; repeat: if (input[index] < input[minIndex]) { minIndex = index; } if(++index < length) goto repeat; // end loop for int temp = input[startIndex]; input[startIndex] = input[minIndex]; input[minIndex] = temp; selectionSort(input, length, startIndex + 1); } int main() { int input[] = {9, 3, 4, 2, 7, 5, 1, 6, 0, 8}; int input1[] = {9, 3, 4, 2, 7, 5, 1, 6, 0, 8}; selectionSort(input, 10, 0); printf("{%d, %d, %d, %d, %d, %d, %d, %d, %d, %d}\n", input[0], input[1], input[2], input[3], input[4], input[5], input[6], input[7], input[8], input[9]); selectionSort1(input1, 10, 0); printf("{%d, %d, %d, %d, %d, %d, %d, %d, %d, %d}", input1[0], input1[1], input1[2], input1[3], input1[4], input1[5], input1[6], input1[7], input1[8], input1[9]); return 0; }