Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

132
Visualizações
El código ejecuta todos los casos incluso con la declaración de interrupción

Este es un programa simple para rotar bits, el caso del interruptor se usa para definir si el usuario quiere una rotación hacia la izquierda o hacia la derecha después de obtener el bit más significativo o el bit menos significativo, según la elección que usé para el bucle en el lado del interruptor y usé los mismos valores y ejecuta todos los casos sin importar lo que ingresé.

 #include <stdio.h> #define SIZE sizeof(number)*8 void main() { int number, rotate, i, SB, numberr; char choice; puts("simple program to rotate bits of a number"); printf("If you want right rotation type 'R'\n"); printf("enter your number : "); scanf("%d", &number); printf("Enter how much time you want to rotate : "); scanf("%d", &rotate); getchar(); printf("IF you want left rotation type 'L' : "); scanf("%c", &choice); switch(choice) { case 'l' : case 'L' : SB = (1<<(SIZE-1))&1; for(i=0;i<rotate;i++) { numberr = (number << 1) | SB; printf("\n%d after being rotated %d times became %d\n\n", number, rotate, numberr); } break; case 'r' : case 'R' : SB = number & 1; for(i=0;i<rotate;i++) { numberr = (number >> 1) | SB; printf("\n%d after being rotated %d time became %d\n\n", number, rotate, numberr); } break; default : printf("please chose either R or L\n\n"); } }
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

He refinado tu código y esto podría ayudar. Es posible que desee mejorar la sintaxis de su código antes de publicar la pregunta.

 #include <stdio.h> #define SIZE 32 int main() { int number, rotate, i, number1; char choice; int output; puts("simple program to rotate bits of a number"); printf("enter your number : "); scanf("%d", &number); printf("Enter how much time you want to rotate : "); scanf("%d", &rotate); printf("If you want right rotation type 'R'\n"); printf("IF you want left rotation type 'L' : "); scanf(" %c", &choice); switch(choice) { case 'l' : case 'L' : output = (number << rotate) | (number >> (SIZE - rotate)); printf("%d after rotating %d times became %d,",number,rotate,output); break; case 'r' : case 'R' : output = (number >> rotate) | (number << (SIZE - rotate)); printf("%d after rotating %d times became %d,",number,rotate,output); break; default : printf("Please choose either R or L\n\n"); } return 0; }
over 4 years ago · Santiago Trujillo Relatório

0

El resultado es confuso porque los mensajes de cada case están redactados de manera idéntica. Cuando agregué L y R al mensaje, mostró que solo se ejecuta un case .

El problema es que la salida está dentro del bucle y debe moverse fuera, por ejemplo

 case 'l' : case 'L' : SB = (1<<(SIZE-1))&1; for(i=0;i<rotate;i++) { numberr = (number << 1) | SB; } printf("L %d after being rotated %d times became %d\n\n", number, rotate, numberr); break;
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda