DonanımHaber Mini sürüm 2 Ocak 2026 tarihi itibariyle kullanımdan kalkacaktır. Bunun yerine daha hızlı bir deneyim için DH Android veya DH iOS uygulamalarını kullanabilirsiniz.
Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
297
Tıklama
0
Öne Çıkarma
Switch-case ile ilgili
R
11 yıl (89 mesaj)
Çavuş
Konu Sahibi

Arkadaşlar ödevim var ve sıkıntı yaşıyorum soru kısmen şöyle; Bir menü oluşturmam isteniyor ve bu menü 3 bölümden oluşuyor:

1-Geometrik şeklin çizilmesi
2-Sayıyı tahmin etme oyunu
3. çıkış

Sıkıntım 1. seçenekte ve benden istenen şu; Menüden 1 seçildiğinde ekrana şu menü gelmeli:

1. üçgen
2. dikdörtgen
3. kare

Buraya kadar bir sıkıntı yok ancak bu menüden birini seçince, kullanıcıdan şeklin boyunun ve karakterinin girilmesi isteniyor. Yani ben bu menüden 3'ü seçip boy:6 ve karakter '#' girersem karşıma şu çıkmalı:

######
######
######
######
######
######

Programın büyük bir çoğunluğunu yazdım fakat anlamadığım bir nedenden ötürü karakteri daha giremeden program kapanıyor. Şu ana kadar yazdığım kod sadece '#' karakteri için şöyle:

#include<stdio.h>
#include<stdlib.h>
int main()
{
int menu,m1,boy,sat,sut;
char ch;
printf("1. Geometrik seklin cizilmesi\n");
printf("2. Sayiyi tahmin etme oyunu\n");
printf("3. Cikis \n");
printf("İslem seciniz\n");
scanf("%d", &menu);
switch (menu){
case 1:
printf("1. Ucgen\n");
printf("2. Dikdortgen\n");
printf("3. Kare\n");
printf("Sekil seciniz\n");
scanf("%d", &m1);
printf("Karakter seciniz\n");
scanf("%c", &ch);
break;
switch (ch){
case '#':
switch (m1){
case 1:

printf("Ucgen boyunu giriniz\n");
scanf("%d",&boy);
for(sat=0;sat<=boy;sat++){
for(sut=0; sut<sat; sut++){
printf("#");
}
printf("\n");
}
break;
case 2:

printf("Dikdortgen boyunu giriniz\n");
scanf("%d", &boy);
for(sat=0;sat<boy;sat++){
for(sut=0;sut<boy-1;sut++){
printf("#");
}
printf("\n");
}
break;
case 3:

printf("Karenin boyunu giriniz\n");
scanf("%d", &boy);
for(sat=0;sat<boy;sat++){
for(sut=0;sut<boy;sut++){
printf("#");
}
printf("\n");
}
break;
}
break;
}
}
system("pause");
return 0;
}

Yardımcı olabilecek birileri varsa çok sevinirim nerede hatam var anlamış değilim büyük ihtimal iç-içe switch case kullandığım için yaşıyorum bu sıkıntıyı ama nasıl düzelticem bilmiyorum şimdiden teşekkürler.





< Bu mesaj bu kişi tarafından değiştirildi Redath -- 31 Temmuz 2014; 17:43:21 >

B
11 yıl (76 mesaj)
Çavuş

Bu şekilde çalışıyor:
 
#include<stdio.h>
#include<stdlib.h>
int main()
{
int menu,m1,boy,sat,sut;
char ch;
printf("1. Geometrik seklin cizilmesi\n");
printf("2. Sayiyi tahmin etme oyunu\n");
printf("3. Cikis \n");
printf("İslem seciniz\n");
scanf("%d", &menu);
switch (menu){
case 1:
printf("1. Ucgen\n");
printf("2. Dikdortgen\n");
printf("3. Kare\n");
printf("Sekil seciniz\n");
scanf("%d", &m1);
printf("Karakter seciniz\n");
fflush(stdin);
scanf("%c", &ch);

switch (m1)
{
case 1:
printf("Ucgen boyunu giriniz\n");
scanf("%d",&boy);
for(sat=0;sat<=boy;sat++){
for(sut=0; sut<sat; sut++){
printf("%c",ch);
}
printf("\n");
}
break;

case 2:
printf("Dikdortgen boyunu giriniz\n");
scanf("%d", &boy);
for(sat=0;sat<boy;sat++){
for(sut=0;sut<boy-1;sut++){
printf("%c",ch);
}
printf("\n");
}
break;

case 3:
printf("Karenin boyunu giriniz\n");
scanf("%d", &boy);
for(sat=0;sat<boy;sat++){
for(sut=0;sut<boy;sut++){
printf("%c",ch);
}
printf("\n");
}
break;

}
break;
}
system("pause");
return 0;
}



Bu mesaja 1 cevap geldi.
R
11 yıl (89 mesaj)
Çavuş
Konu Sahibi

Gerçekten çok teşekkür ederim kafayı yemek üzereydim böylelikle herhangi bir karakteri de direk yazdırabilcem tekrar çok sağolun




Bu mesajda bahsedilenler: @brk0001
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.