Doubt with bool in C

-2

Well, I did this test with vectors, but I'm having a problem with bool, which never fakes and displays the message not found.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>

int main() {

    char *palavras[] = {"maca", "uva", "pera"};
    int tamanho = sizeof(palavras) / sizeof(char *);
    int tam = tamanho;
    char nome[100];
    bool achou = false;

    while(true) {
    if(tam > 0) {
    printf("[ ");
    for(int i=0; i<tam - 1; i++) {
        printf("%s, ", palavras[i]);
    }
       printf("%s ]\n", palavras[tam - 1]);
    }
    printf("Deseja excluir qual fruta? ");
    fgets(nome, 20, stdin);
    nome[strlen(nome) - 1] = '
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>

int main() {

    char *palavras[] = {"maca", "uva", "pera"};
    int tamanho = sizeof(palavras) / sizeof(char *);
    int tam = tamanho;
    char nome[100];
    bool achou = false;

    while(true) {
    if(tam > 0) {
    printf("[ ");
    for(int i=0; i<tam - 1; i++) {
        printf("%s, ", palavras[i]);
    }
       printf("%s ]\n", palavras[tam - 1]);
    }
    printf("Deseja excluir qual fruta? ");
    fgets(nome, 20, stdin);
    nome[strlen(nome) - 1] = '%pre%';
    if(tam == 0) { puts("Sem frutas disponiveis"); break; }
    for(int i=0; i<tam; i++) {
    achou = false;
    if(!strcmp(nome, palavras[i])) {
        printf("Fruta: %s, excluida.\n\n", nome);
        for(int j=i; j<tam - 1; j++) {
            palavras[j] = palavras[j + 1];
        }
        tam--;
        achou = true;
        break;
     }
    if(achou) { //se falso
        printf("Fruta: %s, nao encontrada.\n\n", nome);
    } } }

    return 0;
}
'; if(tam == 0) { puts("Sem frutas disponiveis"); break; } for(int i=0; i<tam; i++) { achou = false; if(!strcmp(nome, palavras[i])) { printf("Fruta: %s, excluida.\n\n", nome); for(int j=i; j<tam - 1; j++) { palavras[j] = palavras[j + 1]; } tam--; achou = true; break; } if(achou) { //se falso printf("Fruta: %s, nao encontrada.\n\n", nome); } } } return 0; }

I can not resolve this.

    
asked by anonymous 24.05.2017 / 22:14

1 answer

-1

I've edited your program

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>

int main()
{

  char *palavras[] = {"maca", "uva", "pera"};
  int tamanho = sizeof(palavras) / sizeof(char *);
  int tam = tamanho;
  char nome[100];
  bool achou = false;
  while(true)
    {
      if(tam > 0)
        {
          printf("[ ");
          for(int i=0; i<tam - 1; i++)
            {
              printf("%s, ", palavras[i]);
            }
          printf("%s ]\n", palavras[tam - 1]);
        }
      printf("Deseja excluir qual fruta? ");
      fgets(nome, 20, stdin);
      nome[strlen(nome) - 1] = '
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>

int main()
{

  char *palavras[] = {"maca", "uva", "pera"};
  int tamanho = sizeof(palavras) / sizeof(char *);
  int tam = tamanho;
  char nome[100];
  bool achou = false;
  while(true)
    {
      if(tam > 0)
        {
          printf("[ ");
          for(int i=0; i<tam - 1; i++)
            {
              printf("%s, ", palavras[i]);
            }
          printf("%s ]\n", palavras[tam - 1]);
        }
      printf("Deseja excluir qual fruta? ");
      fgets(nome, 20, stdin);
      nome[strlen(nome) - 1] = '%pre%';
      if(tam == 0)
        {
          puts("Sem frutas disponiveis");
          break;
        }
      for(int i=0; i<tam; i++)
        {
          achou = false;
          if(!strcmp(nome, palavras[i]))
            {
              printf("Fruta: %s, excluida.\n\n", nome);
              for(int j=i; j<tam - 1; j++)
                {
                  palavras[j] = palavras[j + 1];
                }
              tam--;
              achou = true;
              break;
            }
        }
      if(!achou) // retirado de dentro do for e na negativa
        { //se falso
          printf("Fruta: %s, nao encontrada.\n\n", nome);
        }
    }
    return 0;
}
'; if(tam == 0) { puts("Sem frutas disponiveis"); break; } for(int i=0; i<tam; i++) { achou = false; if(!strcmp(nome, palavras[i])) { printf("Fruta: %s, excluida.\n\n", nome); for(int j=i; j<tam - 1; j++) { palavras[j] = palavras[j + 1]; } tam--; achou = true; break; } } if(!achou) // retirado de dentro do for e na negativa { //se falso printf("Fruta: %s, nao encontrada.\n\n", nome); } } return 0; }
    
24.05.2017 / 23:00