Executando verificação de segurança...
0
AXYL
1 min de leitura ·

Cinema 1.5

Refiz o código com do-while pois acredito que ficaria menor e mais direto mesmo tendo verificação cada interação.(Muda em apenas 3 linhas diferença mas acredito que em um código maior possa fazer diferença, com otimização certa pode ser melhor ou só dar mais trabalho)

`#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#define QTD_CHAIRS 10 // quantidade de cadeiras

void CSW() {
system("cls");
}

void print_chairs(int chairs[]) {
printf("Cadeiras disponíveis:\n");
for (int i = 0; i < QTD_CHAIRS; i++) {
if (chairs[i] == 0) { // disponível
printf("[B%d] ", i + 1);
} else { // ocupado
printf("[--] ");
}
}
printf("\n");
}

int main() {
int chairs[QTD_CHAIRS] = { 0 };
char opcao[2];

do {
    CSW();
    print_chairs(chairs);

    char cadeira[4];
    printf("Reservar a cadeira: ");
    scanf("%3s", cadeira);
    int numeroCadeira = atoi(cadeira + 1);
    if (toupper(cadeira[0]) != 'B' || numeroCadeira < 1 || numeroCadeira > QTD_CHAIRS) {
        printf("Cadeira inválida!\n");
    } else if (chairs[numeroCadeira - 1] == 0) {
        chairs[numeroCadeira - 1] = 1;
        printf("Cadeira %s RESERVADA!\n", cadeira);
    } else {
        printf("Cadeira %s já está reservada!\n", cadeira);
    }

    printf("Quer reservar outra cadeira? [S/N] ");
    scanf(" %1s", opcao);
    opcao[0] = toupper(opcao[0]);

} while (opcao[0] == 'S');

printf("Fim Das Escolhas!\n");
return 0;

}`

Carregando publicação patrocinada...
1

Você tem alguma dúvida? Não está claro qual é o objetivo da postagem. Quer só falar que fez uma mudança? Qual? Não sabemos como estava antes. Pode ser ter sido inóquo, mas não tem informação suficiente para avaliarmos. Se for isso, para ajudar alguém e justificar publicamente, seria bom argumentar melhor sobre o que fez.

Depois eu vi que tem outra postagem: https://www.tabnews.com.br/AXYL/cinema-b1-ate-b10. Ter linkado para ela teria ajudado.

A otmização se deu mais porque os códigos não são equivalentes, e tirou o que nem era necessário, e pode otmizar mais ainda, mas trocar o while (1) por do não deve ter ajudado, nisso, talevz na expressividade. Claro, só testando para garantir, compiladores são bichinhos intricados.


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).

1

Acabei não sendo claro e fazendo mudanças sem mostrar realmente diferença como você disse, acabei sendo vago na postagem vou ser mais objetivo na proxima. Obrigado pelas dicas.