Ir ao conteúdo

Posts recomendados

Postado
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void main(void) {
    int numeroSorteado, i;

    char* nomes[4];

    nomes[0] = "Oseias";
    nomes[1] = "Miria";
    nomes[2] = "ana";
    nomes[3] = "Carlos";

    srand(time(NULL));

    for (i = 0; i < 11; i++) {
        numeroSorteado = rand() % 4;
        printf("O sorteado foi: %s\n", nomes[numeroSorteado]);
    }
}
 

Olá pessoal, tudo certo? To querendo fazer um programa que faça o sorteio de um amigo secreto no final do ano de minha família. Eu fiz esse esboço porém está apresentando erros, gostaria de ajuda no que posso alterar, e como posso deixá-lo com uma linguagem melhor. Agradeço desde já !

Postado

Quantas letras tem o nome Oseias? E Miria? Ana? Carlos? você acha que um vetor char de tamanho 4 caracteres (sendo que um dever ser reservado para o caractere nulo que identifica o fim da string) é suficiente para armazenar todas as letras de todos os nomes?

 

 

Postado
11 minutos atrás, João Victor Souza Carli disse:

@Mauro Britivaldo o problema fala que é na parte da função void, acho, segue o problema a baixo:

[Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]

Isso não um problema, é só uma aviso. Seu verdadeiro risco e tentar modificar esses nomes em tempo de execução.

 

Caso não esteja conseguindo compilar coloque const antes de chat durante a declaração defina os nomes.

Postado
3 minutos atrás, João Victor Souza Carli disse:

@Mauro Britivaldo como ficaria ? não entendi

Desculpa! Estou de celular então o português saí pior que de costume. Fica assim:

 

const char * nomes[4] = {"Oseias", "Miria", "ana", "Carlos"};

Postado
11 minutos atrás, João Victor Souza Carli disse:

@Mauro Britivaldo pode copiar aqui como ficaria ?

O sentido ainda é mesmo.

#include <stdlib.h>
#include <stdio.h>
#include <time.h> 
  
void main (void)
{ 
    int numeroSorteado, i;
    const char* nomes[4]={ "nome1", "nome2", "nome3", "nome4"};
    // isso resolve o aviso.
  
    srand(time(NULL));
    for (i = 0; i < 11; i++) { numeroSorteado = rand() % 4; printf("O sorteado foi: %s\n", nomes[numeroSorteado]); } }

 

Postado

@João Victor Souza Carli

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
        
int main() {
    int numeroSorteado;

    char a[10]="Oseias";
    char b[10]="Miria";
    char c[10]="ana";
    char d[10]="Carlos";
    
        srand(time(NULL));
        numeroSorteado= rand() % 4;
        
        if(numeroSorteado==1){
            printf ("O sorteado foi: %s\n",a);
        }
        else if(numeroSorteado==2){
            printf ("O sorteado foi: %s\n",b);
        }
        else if(numeroSorteado==3){
            printf ("O sorteado foi: %s\n",c);
        }
        else{
            printf ("O sorteado foi: %s\n",d);
        }
        char i;
        printf ("D Sorteia de novo / S para Sair\n");
        scanf ("%c",&i);
        if (i=='d'||i=='D'){
        return main();
        }
        else if (i=='s'||i =='S'){
        }
        }
        
        
    

 

Postado

@João Victor Souza Carli

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <conio.h>
        
int sorteia(){

    int numeroSorteado;

    char a[10]="Oseias";
    char b[10]="Miria";
    char c[10]="ana";
    char d[10]="Carlos";
    
        srand(time(NULL));
        numeroSorteado= rand() % 4;
        
        if(numeroSorteado==1){
            printf ("O sorteado foi: %s\n",a);
        }
        else if(numeroSorteado==2){
            printf ("O sorteado foi: %s\n",b);
        }
        else if(numeroSorteado==3){
            printf ("O sorteado foi: %s\n",c);
        }
        else{
            printf ("O sorteado foi: %s\n",d);
        }
        }
        int main() {
     printf ("\n1 sorteia / 2 sair\n");
    char i;
    i = getch(); 
    switch (i) {
    case '1':
    sorteia();
    return main();
      break;
    case '2':
    	exit (0);
    }
        }

 

adicionado 1 minuto depois

se quiser limpar a tela após sorteiar coloque System("cls"); no final do case 1 emcima do break

Postado

ficaria mas o menos assim mas nesse caso  ainda falta fazer uma condição pra a pessoa não sorteiar  quem ja foi sorteado

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <conio.h>
        
int sorteiodeoseias(){

    int numeroSorteado;

    char a[10]="Miria";
    char b[10]="ana";
    char c[10]="Carlos";
        srand(time(NULL));
        numeroSorteado= rand() % 3;
        if(numeroSorteado==1){
            printf ("Oseias sorteou: %s\n",a);
        }
        else if(numeroSorteado==2){
            printf ("Oseias sorteou: %s\n",b);
        }
        else if(numeroSorteado==3){
            printf ("Oseias sorteou: %s\n",c);
        }
        }
        
       int sorteiodemiria(){
    int numeroSorteado;
    char a[10]="Oseias";
    char b[10]="ana";
    char c[10]="Carlos";
        srand(time(NULL));
        numeroSorteado= rand() % 3;
        if(numeroSorteado==1){
            printf ("Miria sorteou: %s\n",a);
        }
        else if(numeroSorteado==2){
            printf ("Miria sorteou: %s\n",b);
        }
        else if(numeroSorteado==3){
            printf ("Miria sorteou: %s\n",c);
        }
        }
        
        int sorteiodeana(){
    int numeroSorteado;
    char a[10]="Miria";
    char b[10]="Oseias";
    char c[10]="Carlos";
        srand(time(NULL));
        numeroSorteado= rand() % 3;
        if(numeroSorteado==1){
            printf ("Ana sorteou: %s\n",a);
        }
        else if(numeroSorteado==2){
            printf ("Ana sorteou: %s\n",b);
        }
        else if(numeroSorteado==3){
            printf ("Ana sorteou: %s\n",c);
        }
        }
        
        int sorteiodecarlos(){

    int numeroSorteado;

    char a[10]="Oseias";
    char b[10]="Miria";
    char c[10]="ana";
    
        srand(time(NULL));
        numeroSorteado= rand() % 3;
        
        if(numeroSorteado==1){
            printf ("Carlos sorteou: %s\n",a);
        }
        else if(numeroSorteado==2){
            printf ("Carlos sorteou: %s\n",b);
        }
        else if(numeroSorteado==3){
            printf ("Carlos sorteou: %s\n",c);
        }
        }
    
    int main() {
     printf ("\n1 escolha o sorteiador");
     printf ("\n1 1- Oseias");
     printf ("\n1 2- Miria");
     printf ("\n1 3- Ana");
     printf ("\n1 4- Carlos\n");
    char i;
    i = getch(); 
    switch (i) {
    case '1':
    system ("cls");
    sorteiodeoseias();
    return main();
      break;
    case '2':
    system ("cls");
    sorteiodemiria();
    return main();
    break;
    case '3':
    system ("cls");
    sorteiodeana();
    return main();
    break;
    case '4':
    system ("cls");
    sorteiodecarlos();
    return main();
    break;
    }
        }

 

Postado
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>

int sorteio() {
	printf("1 - ozeias\n2- Ana\n3-miria\n4- Carlos");

  int aleatorio[10]; /* variáveis colocadas aqui antes da main são inicializadas com valor zero */

  char w[20];
  char x[20];
  char y[20];
  char z[20];
  srand(time(NULL)); /* usada apenas uma vez no programa todo                */
  int cont, j, achou, num;
  for (cont = 0; cont < 4; cont++) {
    do {
      achou = 0; /* igual a falso                                        */
      num = rand() % 4 + 1;

      for (j = 0; j < 4; j++)
        if (num == aleatorio[j])
          achou = 1; /* numero repetiu , igual a verdadeiro                  */

    } while (achou); /* repete enquanto verdadeiro                           */
    aleatorio[cont] = num;

    sprintf(w, "%d", aleatorio[3]);
    sprintf(x, "%d", aleatorio[2]);
    sprintf(y, "%d", aleatorio[1]);
    sprintf(z, "%d", aleatorio[0]);
  }
  for (j = 0; j < 4; j++)
    printf("\n");
  printf("Concorrente numero %s  Sorteou concorrente de numero (%d)\n\n", w, aleatorio[0]);
  printf("Concorrente numero %s  Sorteou concorrente de numero (%d)\n\n", x, aleatorio[1]);
  printf("Concorrente numero %s  Sorteou concorrente de numero(%d)\n\n", y, aleatorio[2]);
  printf("Concorrente numero %s  Sorteou concorrente de numero (%d)\n\n", z, aleatorio[3]);
}

int main() {
  printf("\n1 Realizar Sorteio / 2 Sair");
  char h;
  h = getch();
  switch (h) {
  case '1':
    system("cls");
    sorteio();
    return main();
    break;
  case '2':
    break;
  }
}

@João Victor Souza Carli

 

 

image.png.aa9d273eabf6d833d491a5743562cddb.png

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

×
×
  • Criar novo...