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
296
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.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< 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.