Aykan5498
Hectopat
- Katılım
- 6 Ocak 2019
- Mesajlar
- 188
Merhabalar, birkaç aydır C öğrenmeye çalışıyorum. Öğrenmek için C programming: A modern approach kitabını kullanıyorum. Kitabın Basic types kısmını bitirdim ve kısımın sonundaki program alıştırmalarında bir alıştırmada takıldım. Alıştırmada harfleri telefon numaralarına döndürülmesini istiyor. Lakin ben programa 1-800-COL-lect yazıp çalıştırınca 800-800-800.. Diye gidiyor. Sorun nedir? Sayıları ve harfleri tek girince bir sıkıntı çıkartmıyor else kısımında. İkisini de aynı anda girince bu sorunu alıyorum.
C:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[])
{
int i, phoneDigit;
char c;
printf("If you want to just alphabetic phone number press 1 unless press 2: ");
scanf("%d", &i);
if (i == 1)
{
printf("Enter alphabetic phone number : ");
c = getchar();
for (;;)
{
switch (c)
{
case 'A': case 'B': case 'C': printf("2"); break;
case 'D': case 'E': case 'F': printf("3"); break;
case 'G': case 'H': case 'I': printf("4"); break;
case 'J': case 'K': case 'L': printf("5"); break;
case 'M': case 'N': case 'O': printf("6"); break;
case 'P': case 'R': case 'S': printf("7"); break;
case 'T': case 'U': case 'V': printf("8"); break;
case 'W': case 'Y': case 'X': printf("9"); break;
}
c = getchar();
}
}
else.
{
printf("Enter a phone number : ");
scanf("%d", &phoneDigit);
for (;;)
{
if (phoneDigit == 0)
{
c = getchar();
c = toupper(c);
i = c;
switch (i)
{
case 'A': case 'B': case 'C': printf("2"); break;
case 'D': case 'E': case 'F': printf("3"); break;
case 'G': case 'H': case 'I': printf("4"); break;
case 'J': case 'K': case 'L': printf("5"); break;
case 'M': case 'N': case 'O': printf("6"); break;
case 'P': case 'R': case 'S': printf("7"); break;
case 'T': case 'U': case 'V': printf("8"); break;
case 'W': case 'Y': case 'X': printf("9"); break;
default: printf("0"); break;
}
scanf("%d", &phoneDigit);
}
else.
{
printf("%d", phoneDigit);
}
scanf("%d", &phoneDigit);
}
}
return 0;
}