Dev - C++ - Ayuda para un proyecto

 
Vista:

Ayuda para un proyecto

Publicado por Hugo Cortes (1 intervención) el 26/04/2019 00:00:21
Necesito ayuda para crear un programa que haga lo siguiente
1 introducir valor para N (N=<7)
2 mostrar mensaje
si N=1 mostrar mensaje 1
Si N=2 mostrar mensaje 2
Si N=3 mostrar mensaje 3
Si N=4 mostrar mensaje 4
Si N=5 mostrar mensaje 5
Si N=6 mostrar mensaje 6
Si N=6 mostrar mensaje 7
3 introducir nuevo valor para N sin aceptar valor anterior
4 mostrar mensaje
Y que se forme un ciclo hasta que ya no se acepten valores y se muestre un último mensaje
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 160
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda para un proyecto

Publicado por Andrés (53 intervenciones) el 26/04/2019 22:10:09
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
 
const unsigned char LEN = 7;
 
struct mensaje {
  char *contenidoPtr;
  bool visitado;
};
 
typedef struct mensaje Mensaje;
 
void inicializar(Mensaje *);
void mostrar_mensaje(Mensaje *);
 
int main(void) {
 
  Mensaje mensajes[LEN];
 
  inicializar(mensajes);
  mostrar_mensaje(mensajes);
 
  return EXIT_SUCCESS;
}
 
void inicializar(Mensaje * mensajePtr) {
 
  for(register unsigned char i = 1 ; i < LEN + 1 ; i++) {
     mensajePtr -> contenidoPtr = (char*)malloc(10*sizeof(char));
     sprintf(mensajePtr -> contenidoPtr, "Mensaje %d", i);
     mensajePtr -> visitado = false;
     mensajePtr++;
  }
 
}
 
void mostrar_mensaje(Mensaje *mensajePtr) {
 
  char n;
  unsigned char visitados = 0;
  unsigned char indice;
 
  while(visitados != LEN) {
 
    printf("Valor de n [1,7]: ");
    scanf(" %c", &n);
 
    if('1' <= n  && n <= '7') {
 
      indice = n - '1';
 
      if(! ( (mensajePtr + indice) -> visitado)) {
 
        printf("%s\n", ( mensajePtr + indice ) -> contenidoPtr );
        ( mensajePtr + indice ) -> visitado = true;
        visitados++;
 
      }
 
    }
 
  }
 
  printf("No hay más mensajes a mostrar\n");
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar