Gönderen Konu: char'ı okumuyor.  (Okunma sayısı 994 defa)

Çevrimdışı okko

  • Üye
  • İleti: 112
    • Profili Görüntüle
char'ı okumuyor.
« : 30 Tem 2015, 18:36:24 Prş »
Kod: [Seç]
#include<stdio.h>

void celcius( double derece1);
void kelvin ( double derece1);
void fah (double derece1);
void reo (double derece1);


int main(void )
{
double  derece;
char terim;
int durum;

printf("Dereceyi girin:\t");
scanf("%lf", &derece);
printf("ss");

scanf(" %c",&terim);


switch( terim )
{
case 'C':
case 'c':
durum=1;
break;

case 'K':
case 'k':
durum=2;
break;

case 'F':
case 'f':
durum=3;
break;

case 'R':
case 'r':
durum=4;
break;

default:
printf("Yanlis giris.\n");
break;
}

if (durum==1){


void celcius(derece);
}
else if(durum==2){

void kelvin (derece);
}
else if (durum==3){

void fah (derece);
}
else if(durum==4){

void reo (derece);
}

}

void celcius( double derece1)
{
printf("%lf Celcius=\n%lf Kelvin\n%lfFahrenheit\n%lf Reomur \t...Derecedir",derece1,
derece1+273,(18/10)*derece1+32,(8/10)*derece1);
}

void kelvin( double derece1)
{
printf("%lf Kelvin=\n%lf Celcius\n%lfFahrenheit\n%lf Reomur \t...Derecedir",derece1,
derece1-273,(derece1-273)*18/10+32,(derece1-273)*8/10);
}

void fah( double derece1 )
{
printf("%lf Fahrenheit=\n%lf Celcius\n%lfKelvin\n%lf Reomur \t...Derecedir",derece1,
(derece1-32)*10/18,(derece1-32)*10/18+273,(derece1-32)*8/18);
}

void reo( double derece1)
{
printf("%lf Reomur=\n%lf Celcius\n%lfKelvin\n%lf Fahrenheit \t...Derecedir",derece1,
derece1*10/8,derece1*10/8+273,derece1*18/8+32);
}

18 c girdiğim zaman ekranda hiç bir sonuç yazmıyor. Nerde hata var ?
« Son Düzenleme: 30 Tem 2015, 19:52:16 Prş Gönderen: okko »
Kayalari delen damlalarin büyüklügü degil, sürekliligidir.

Çevrimdışı zafer11

  • Üye
  • İleti: 27
    • Profili Görüntüle
Ynt: char'ı okumuyor.
« Yanıtla #1 : 30 Tem 2015, 20:19:25 Prş »
tek scanf le derece ve terim alınırsa (ayrıca %lf ve %c arasında boşluk bırakarak) çalışıyor
Kod: [Seç]
scanf("%lf %c", &derece,&terim);

Çevrimdışı okko

  • Üye
  • İleti: 112
    • Profili Görüntüle
Ynt: char'ı okumuyor.
« Yanıtla #2 : 30 Tem 2015, 20:33:35 Prş »
Sorun fonksiyonu yanlış çağırıyormuşum.
**fonksiyonu çağırırken başında void olmamalı.
Kopyala-Yapıştır yaparken gözümden kaçmış.
Doğrusu aşağıda.Teşekkürler.
Kod: [Seç]
#include<stdio.h>

void celcius( double derece1);
void kelvin ( double derece1);
void fah (double derece1);
void reo (double derece1);


int main(void )
{
double  derece;
char terim;
int durum;

printf("Dereceyi girin:\t");
scanf("%lf", &derece);


scanf(" %c",&terim);


switch( terim )
{
case 'C':
case 'c':
durum=1;
break;

case 'K':
case 'k':
durum=2;
break;

case 'F':
case 'f':
durum=3;
break;

case 'R':
case 'r':
durum=4;
break;

default:
printf("Yanlis giris.\n");
break;
}

if(durum==1){


celcius(derece);
}
else if(durum==2){

kelvin (derece);
}
else if (durum==3){

fah (derece);
}
else if(durum==4){

reo (derece);
}

return 0;
}

void celcius( double derece1)
{
printf("%lf Celcius=\n%lf Kelvin\n%lfFahrenheit\n%lf Reomur \t...Derecedir",derece1,
derece1+273,(18/10)*derece1+32,(8/10)*derece1);
}

void kelvin( double derece1)
{
printf("%lf Kelvin=\n%lf Celcius\n%lfFahrenheit\n%lf Reomur \t...Derecedir",derece1,
derece1-273,(derece1-273)*18/10+32,(derece1-273)*8/10);
}

void fah( double derece1 )
{
printf("%lf Fahrenheit=\n%lf Celcius\n%lfKelvin\n%lf Reomur \t...Derecedir",derece1,
(derece1-32)*10/18,(derece1-32)*10/18+273,(derece1-32)*8/18);
}

void reo( double derece1)
{
printf("%lf Reomur=\n%lf Celcius\n%lfKelvin\n%lf Fahrenheit \t...Derecedir",derece1,
derece1*10/8,derece1*10/8+273,derece1*18/8+32);
}
« Son Düzenleme: 30 Tem 2015, 20:37:06 Prş Gönderen: okko »
Kayalari delen damlalarin büyüklügü degil, sürekliligidir.