Profesörüm anahtar bildirimi oluşturmamızı istedi. Programı yapmak için sadece "SWITCH" ifadesini kullanabiliyoruz. Bir sayı girmemizi ve numara aralığındaki numarayı göstermemizi ve aşağıda gösterildiği gibi hangi evrak numarasının alınacağını görmemizi istiyor. Şimdi ... Bu tür bir program için IF bildirimini kullanmak daha kolay olduğunu biliyorum. Vaka 1: Durum 2: Vaka 3 ... Vaka 30 çalışacak ancak numara aralığından dolayı çok fazla zaman alacaktır.C - Birden fazla kasa numarası ile geçiş
#include <stdio.h>
main()
{
int x;
char ch1;
printf("Enter a number: ");
scanf("%d",&x);
switch(x)
{
case 1://for the first case #1-30
case 30:
printf("The number you entered is >= 1 and <= 30");
printf("\nTake Briefcase Number 1");
break;
case 31://for the second case #31-59
case 59:
printf("The number you entered is >= 31 and <= 59");
printf("\nTake Briefcase Number 2");
break;
case 60://for the third case #60-89
case 89:
printf("The number you entered is >= 60 and <= 89");
printf("\nTake Briefcase Number 3");
break;
case 90://for the fourth case #90-100
case 100:
printf("The number you entered is >= 90 and <= 100");
printf("\nTake Briefcase Number 4");
break;
default:
printf("Not in the number range");
break;
}
getch();
}
Profesörüm, bunun nasıl yapılacağına dair daha kısa bir yol olduğunu ancak bize nasıl yapamayacağımızı anlattı. Kısalmayı düşünebilmemin tek yolu, IF'yi kullanmaktır ama biz buna izin verilmez. Bunu nasıl yapabileceğime dair herhangi bir fikir var mı? aralıkları tutarlı iseniz
Sadece kontrol etmek için, ilk durumun 1'den 30'a kadar gittiğinden emin misiniz? ve 1 ila 29 değil mi? –
Düşünüyor musunuz? Vaka 1: vaka 30: 'aralığındaki herhangi bir sayıyla eşleşecek mi? Yapmayacak. – John3136
İlk 'case' etiketleriniz sadece 2 değer buluyor: 1 ve 30; 2..29'u görmezden geliyorlar. Bir sonraki 'menzil', vb. Için Ditto. Sadece anahtarı kullanarak, bir acı dünyası içindesiniz. –