Jump to content
Fórum Script Brasil

Aristóteles

Membros
  • Posts

    55
  • Joined

  • Last visited

About Aristóteles

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Aristóteles's Achievements

0

Reputation

  1. #include <stdio.h> #include <stdlib.h> #include <time.h> void rodarroleta() { printf ("\nPara girar a roleta, pressione ENTER\n"); while (getchar () != '\n'); } int main() { srand (time(NULL)); int numero=1; rodarroleta(); do { if (numero%2==0) { printf ("\nVocê acertou um número par, tem direito a uma nova jogada... \n"); rodarroleta(); } numero = 1 + rand () % 35; if (numero==7) printf ("\nVOCÊ GANHOU O MAIOR PRÊMIO!, acertou o número %d\n", numero); else printf ("Você tirou o número %d\n", numero); }while (numero%2==0); printf ("\n\nFIM\n\n"); return 0; }
  2. Você pode usar um alinhamento de if e else if ou switch para fazer isso. Grave a entrada numa variável e faça os testes lógicos.
  3. E mais uma coisa importante, quando if (texto[i]==' ' || texto[i]=='\0') antes de tudo coloque aux[j]='\0'; Atribuindo caractere por caractere é necessário fazer isso. Fui.
  4. #include<stdio.h> #include<stdlib.h> #include<string.h> #include<locale.h> const int TAM_TEXTO = 100; const int TAM_PALAVRA = 50; int conta_ocorrencia_palavra(char texto[], int TAM, char palavra[], int TAM2) { printf ("\n\n%d\n\n", TAM); int igual = 0, i=0, j=0; char aux [TAM_PALAVRA]; strcpy (aux, ""); for (i=0; i<TAM+1; i++) { if (texto[i]==' ' || texto[i]=='\0') { if (strcmp (aux, palavra)==0) igual++; strcpy(aux, ""); j=0; } else { aux[j]=texto[i]; j++; } } printf ("\n%d\n", igual); return 0; } int main(){ //setlocale(LC_ALL,"Portuguese"); char texto[TAM_TEXTO],palavra[TAM_PALAVRA]; printf ("\nTEXTO:"); scanf("%[^\n]s",texto); printf ("\n%s\n", texto); printf ("\nPALAVRA:"); scanf("%s",palavra); conta_ocorrencia_palavra(texto, strlen(texto), palavra, strlen(palavra)); //system ("pause"); return 0; } Você precisa passar aonde a string acaba, é um array de caracteres e está na função main. E no for principal, que trabalha caractere por caractere da string texto, é preciso somar+1 no TAM ou colocar i<=TAM , pois o final do texto não é ' ' e sim '\0', isso serve para que a ultima palavra da string também tenha efeito na função.
  5. quais das linhas (0,1,2,3) devem ser par e quais impar
  6. O raciocínio está correto, basta utilizar mais uma variável para fazer o backup da média. Veja só: #include <stdio.h> #include <stdlib.h> int main () { float altura, media=0, backup_media=0; int idade=10, cont=0; while (idade > 0) { printf ("DIGITE A IDADE:"); scanf ("%d", &idade); printf ("DIGITE A ALTURA:"); scanf ("%f", &altura); printf ("\n"); if (idade >50) { cont++; backup_media+=altura; media=backup_media; media/=cont; } printf ("A media de altura das pessoas com mais de 50 anos é: %f\n\n", media); } return 0; } Se o cálculo for feito apenas somando media = media + altura; media / cont; O valor bruto da média aritmética é perdido a cada operação. Por isso o uso de uma variável de backup: backup_media+=altura; media=backup_media; media/=cont; backup_media sempre mantém o valor bruto da soma de todas as alturas, e a variável média recebe apenas a média aritmética desse valor bruto fazendo a divisão de acordo com a contagem da variavel cont. Até.
  7. O erro mais evidente está nas letras maiúsculas, Return, Printf, Float, são iniciais minúsculas.
  8. Dê uma estudada em funções virtuais e em funções publicas que permitem esse tipo de acesso externo.
  9. Pode ser aí o problema. :)
  10. Para isso, inclua a biblioteca time.h, e coloque srand (time(NULL)), de preferência logo no inicio da função main. Exemplo: #include <stdio.h> #include <stdlib.h> #include <time.h> int main () { srand (time(NULL)); int a; a = 1 + rand () % 100; printf ("\n%d\n", a); return 0; } Repare no tamanho que você define sua matriz: int matriz[100][2]; Lembre-se, vetores iniciam no zero e vão até o tamanho -1. Nesse caso, de 0 a 99 linhas, e 0 a 1 colunas. O provável erro está nessa parte: int a = ; for (a = ; a<101; a++) { matriz[a][] = 10; matriz[a][1] = 100; matriz[a][2] = 100; } Você está usando a sua matriz como se fosse de 0 a 100 linhas e não 0 a 99, pois <<a>> é incrementado de 0 até 100 e está usando 0 a 2 colunas. Para resolver isso é simples. Se você quiser uma matriz que vai de 0 a 100 linhas, e 0 a 2 colunas: int matriz [101][3]. se quer de 0 a 99 linhas e 0 a 2 colunas: int matriz [100][3]. Feita essa correção, ajuste esse for e o seu programa estará redondinho.
  11. #include <iostream> #include <stdbool.h> using namespace std; int main() { cout << "Determinar o maior múltiplo de um inteiro dado menor do que ou igual a um outro inteiro dado.\n" << endl; bool ExisteMult=false; int i, M, N, backup, j; cout << "Digite um valor:"<< endl; cin >> M; cout << "Digite outro valor:"<< endl; cin >> N; if (M>N) { backup=N; N=M; M=backup; } cout << "\nEntrada:\n\n" << M << "\n\n" << N; cout << endl; for (i=M; i<=N; i++) { if ((M*i) <= N) { ExisteMult=true; j=(M*i); } } if (ExisteMult==false) cout << "\nNenhum multiplo existe nas condicoes de entrada definidas" << endl; else cout << "\nO maior multiplo entre " << M << " e " << N << ": " << j << endl; return 0; }
  12. Adapte em seu código o seguinte algorítmo de ordenamento de strings em ordem alfabética: #include <stdio.h> #include <stdlib.h> #include <string.h> int main () { char nome [4][15], aux [15]; int i, j; for (i=0; i<4; i++) { printf ("Digite o nome %d:",i+1); scanf ("%s", nome[i]); printf ("\n"); } printf ("\nAntes do ordenamento:\n"); for (i=0; i<4; i++) { printf ("Nome %d: %s\n", i+1, nome[i]); } for (i=0; i<4; i++) { for (j=i+1; j<4; j++) { if (strcmp (nome[i], nome[j]) > 0) { strcpy (aux, nome[i]); strcpy (nome [i], nome [j]); strcpy (nome [j], aux); j=i; } } } printf ("\n\nEm ordem alfabetica: \n\n"); for (i=0;i<4;i++) printf ("Nome %d: %s\n", i+1, nome[i]); return 0; }
  13. Bem vindo. Primeiramente, evite usar a biblioteca conio.h cara, ela já é obsoleta e nem é padrão do C. Esse algorítmo parece ser fácil e simples, mas é complexo. Segue o código: #include <stdio.h> #include <stdlib.h> #include <time.h> #include <stdbool.h> bool rept (int m[], int numero, int tam) { //um bool auxiliar. int q, l; for (q=0; q<tam; q++) { if (numero==m[q]) l=1; else l=0; } if (l==1) return true; else return false; } //ordena maior repetição. Em a[0] será inserida a face com maior número de repetição, e em b[0] a respectiva face. int maior (int a[], int b[], int tam) { int i, j, backup, backup2; for (i=0; i<tam; i++) { for (j=i+1; j<tam; j++) { if (a[i]<a[j]) { backup = a[i]; a[i]=a[j]; a[j]=backup; backup2=b[i]; b[i]=b[j]; b[j] = backup2; } } } return b[0]; } int main () { srand (time(NULL)); bool repet, repet2=false; int dados [5], num_iguais [5], m=0, j, i, facemaisrepetida, aux=0; int entrada; printf ("Bem vindo! Voce deseja:\n1 - Jogar\nOutro - Sair:"); scanf ("%d", &entrada); printf ("\n"); if (entrada != 1) { printf ("\nSaindo\n"); exit (1); } do { printf ("Digite 1 para jogar os cinco dados:"); scanf ("%d", &entrada); printf ("\n"); }while (entrada!=1); // jogar os dados for (i=0;i<5; i++) { dados[i] = 1 + rand () % 5; printf ("Dado %d caiu em %d\n", i+1, dados[i]); } printf ("\nApenas a maior repeticao sera considerada. Se sairem duas duplas, apenas uma sera considerada!"); //conferir se os dados caíram com números iguais for (i=0; i<5; i++) { for (j=i+1; j<5; j++) { if (dados[i]==dados[j]) { if (m==0) { num_iguais[m] = dados[i]; m++; repet2=true; } repet = rept (dados, dados[i], m); if (dados[i]==dados[j] && m!=0 && repet==false) { num_iguais[m] = dados[i]; m++; repet2=true; } } } } int *maior_rept = (int*) calloc (m,sizeof (int)); if (repet2==true) { for (i=0; i<m; i++) { for (j=0; j<5; j++) { if (num_iguais[i]==dados[j]) { maior_rept[i]+=1; } } } facemaisrepetida = maior (maior_rept, num_iguais, m); if (maior_rept[0]==2) printf ("\n\nVoce tirou uma dupla!\n\n"); if (maior_rept[0]==3) printf ("\n\nVoce tirou uma trinca!\n\n"); if (maior_rept[0]==4) printf ("\n\nVoce tirou uma quadra!\n\n"); if (maior_rept[0]==5) printf ("\n\nVoce tirou um FULL GAME, o melhor resultado do jogo!\n\n"); printf ("A face mais repetida foi %d, tirada pelos dados de numero:", facemaisrepetida); for (i=0; i<1; i++) { for (j=0; j<5; j++) { if (num_iguais[i]==dados[j]) { if (aux==0) printf (" %d", j+1); else printf (", %d", j+1); aux++; } } printf (".\n\n"); } } else { printf ("\n\nNenhuma face repetida!\n\n"); } free (maior_rept); maior_rept=NULL; return 0; } Falou.
  14. Sim, num vai sendo somada ++ até que saia do while. Se não fosse somado nada, ou fosse subtraído, o loop seria infinito. E esse cin >> num não é necessário no caso. Isso é para gravar um dado de entrada (do teclado).
  15. #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { srand (time(NULL)); /*isso é a semente para gerar números aleatórios mesmo, baseado no tempo. sempre use isso para gerar números aleatórios.*/ int CHANCE, AUMENTOMIN, AUMENTOMAX, numrand; CHANCE=0; AUMENTOMIN=3; AUMENTOMAX=15; printf("Percentual de CHANCE: [0,%d]\n\n", 100); for(CHANCE=1 ; CHANCE <= 100 ; CHANCE++) { //uma variável para receber um número aleatório de 1 a 50. Do jeito que estava, era de 0 a 50... numrand = 1 + rand ()%50; if (numrand>40) { printf ("Tentativa de %d: CHANCEMIN: %d\%% CHANCEMAX: %d\%% \nFAVORAVEL.\n\n",CHANCE, numrand+AUMENTOMIN, numrand+AUMENTOMAX); } else { printf ("Tentativa de %d: CHANCEMIN: %d\%% CHANCEMAX: %d\%% \nDESFAVORAVEL.\n\n",CHANCE, numrand+AUMENTOMIN, numrand+AUMENTOMAX); } } return 0; } Veja se isso ajuda... Apenas não coloquei no printf o normal, mas é só colocar %d numrand. Agora é com você. #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { srand (time(NULL)); /*isso é a semente para gerar números aleatórios mesmo, baseado no tempo. sempre use isso para gerar números aleatórios.*/ int CHANCE, AUMENTOMIN, AUMENTOMAX, numrand; CHANCE=0; AUMENTOMIN=3; AUMENTOMAX=15; printf("Percentual de CHANCE: [0,%d]\n\n", 100); for(CHANCE=1 ; CHANCE <= 100 ; CHANCE++) { //uma variável para receber um número aleatório de 1 a 50. Do jeito que estava, era de 0 a 50... numrand = 1 + rand ()%50; if (numrand>40) { printf ("%d ", numrand); printf ("Tentativa de %d: NORMAL: %d%% CHANCEMIN: %d\%% CHANCEMAX: %d\%% \nFAVORAVEL.\n\n",CHANCE, numrand, numrand+AUMENTOMIN, numrand+AUMENTOMAX); } else { printf ("Tentativa de %d: NORMAL: %d%% CHANCEMIN: %d\%% CHANCEMAX: %d\%% \nDESFAVORAVEL.\n\n",CHANCE, numrand, numrand+AUMENTOMIN, numrand+AUMENTOMAX); } } return 0; } Agora sim
×
×
  • Create New...