Son İletiler

Sayfa: 1 ... 8 9 [10]
91
C Programlama Dili / Dizilerde yön sorunu
« Son İleti Gönderen: okko 26 Ağu 2015, 11:19:53 Çrş »
İyi günler;
C dilinde dizilerde 'yılan' oyununa benzer bir şey yapmak istiyorum fakat yön konusunda bir sıkıntı yaşadım.

Öncelikle tüm elemanları '0' 'a tanımlı 50*50 lik bir iki boyutlu dizi oluşturdum.Klavyeden girilen 'W,A,S,D ' harflerine göre sırasıyla yukarı,sol,aşağı,sağ yönlerine gidecek ve bu yöndeki dizi elemanını '*' işareti yapacak bir oyun oluşturmayı düşünüyorum.

Sorunum şurda: '*' işaretinin dizi[0][0] a koyduğumda 'D' ye bastığımda dizi[0][1] elemana '*' koyuyor. Tekrarda 'D' 'ye basıldığında dizi[1][1] elemanına '*' koyuyor. Sağa ve sola gitmek için ard arda basmalarda yılana göre yönlerde kullanıcı baz alınarak sürekli bir değişim gözüküyor ve bunun bir sistemini oluşturamadım.(yılan '------ >'konumundayken kullanıcıya göre aşağıya olan hareket yılana göre sağa doğrudur.)Bunun algoritmasını nasıl kurabilirim?

92
C Programlama Dili / Ynt: Sayıyının rakamlarını Boşluklu Yazdırmak
« Son İleti Gönderen: zafer11 11 Ağu 2015, 00:21:38 Sal »
evet fonksiyondan çıkmak için kullanılıyor.(herhangi bir değer döndürmüyor(void))
93
C Programlama Dili / Ynt: Sayıyının rakamlarını Boşluklu Yazdırmak
« Son İleti Gönderen: okko 09 Ağu 2015, 22:08:56 Paz »
Void tipi fonksiyonlarda return kullanılmıyor diye biliyorum. Başlangıç seviyesinde öğrendiğim için şu an öyle örnekler görmedim.

Void fonksiyonlarında return sadece fonskyiondan çıkmak için mi kullanılıyor?
94
C Programlama Dili / Ynt: Sayıyının rakamlarını Boşluklu Yazdırmak
« Son İleti Gönderen: zafer11 04 Ağu 2015, 11:22:27 Sal »
Kodda main kısmı yoktu sadece fonksiyonu yazmıştım. aşağıdaki haliyle derledim, çalışıyor.(Orwell Dev C++ da)
Kod: [Seç]
#include<stdio.h>

void bosluk (int sayi1);

int main( void )
{
int sayi;
scanf("%d", &sayi);

bosluk( sayi );
}


void bosluk ( int sayi1 )            //b birler basamağı...b2 onlar basamağı..b3 yüzler basamağı..b4 binler basamağı..b5 on binler basamağıdır.
{
int b;
int b2;
int b3;
int b4;
int b5;


b=sayi1%10;   //Birler basamağını bulmak için

if(sayi1!=b)    // eğer sayi bir basamaklıysa aşağıdaki işlemi yapmaması için if koşulunda eşitsizlik var.
b2=(sayi1%100-b)/10;
else
{
printf("%d\t", b);
return;//fonksiyondan çık, diğer if else lerin çalışmaması için, fonksiyonun dönüş değeri void olduğu için return ün yanında değer yok
}

if(sayi1!=10*b2+b)
b3=(sayi1%1000-10*b2-b)/100;
else
{
printf("%d\t%d\t",  b2, b);
return;//fonksiyondan çık
}
if(sayi1!=100*b3+10*b2+b)
b4=(sayi1%10000-100*b3-10*b2-b)/1000;
else
{
printf("%d\t%d\t%d\t", b3, b2, b);
return;//fonksiyondan çık
}

if(sayi1!=1000*b4+100*b3+10*b2+b)
b5=(sayi1-1000*b4-100*b3-10*b2-b)/10000;//burada 10000 e bölme eksikti
else
{
printf("%d\t%d\t%d\t%d\t",b4, b3, b2, b);
return;//fonksiyondan çık
}
//hiçbir return çalışmadıysa yani fonksiyondan çıkmadıysa bu satıra ulaşır, yani sayı 5 basamaklıdır.
printf("%d\t%d\t%d\t%d\t%d\t", b5, b4, b3, b2, b);
}
95
C Programlama Dili / Ynt: Sayıyının rakamlarını Boşluklu Yazdırmak
« Son İleti Gönderen: okko 04 Ağu 2015, 01:49:56 Sal »
Teşekkür ederim fakat benim sorunum bu kodlarla hem 5 basamaklı bir sayıyı tersten yazdırmak hem de 5 basamaktan daha az bir sayıyı tersten yazdırmda. Kodlarda bir hata oluşuyor. Şu an kodu derleyemiyorum hata veriyor.
96
C Programlama Dili / Ynt: Sayıyının rakamlarını Boşluklu Yazdırmak
« Son İleti Gönderen: zafer11 31 Tem 2015, 09:21:16 Cum »
Kod: [Seç]
void bosluk ( int sayi1 )            //b birler basamağı...b2 onlar basamağı..b3 yüzler basamağı..b4 binler basamağı..b5 on binler basamağıdır.
{
int b;
int b2;
int b3;
int b4;
int b5;


b=sayi1%10;   //Birler basamağını bulmak için

if(sayi1!=b)    // eğer sayi bir basamaklıysa aşağıdaki işlemi yapmaması için if koşulunda eşitsizlik var.
b2=(sayi1%100-b)/10;
else
{
printf("%d\t", b);
return;//fonksiyondan çık, diğer if else lerin çalışmaması için, fonksiyonun dönüş değeri void olduğu için return ün yanında değer yok
}

if(sayi1!=10*b2+b)
b3=(sayi1%1000-10*b2-b)/100;
else
{
printf("%d\t%d\t",  b2, b);
return;//fonksiyondan çık
}
if(sayi1!=100*b3+10*b2+b)
b4=(sayi1%10000-100*b3-10*b2-b)/1000;
else
{
printf("%d\t%d\t%d\t", b3, b2, b);
return;//fonksiyondan çık
}

if(sayi1!=1000*b4+100*b3+10*b2+b)
b5=(sayi1-1000*b4-100*b3-10*b2-b)/10000;//burada 10000 e bölme eksikti
else
{
printf("%d\t%d\t%d\t%d\t",b4, b3, b2, b);
return;//fonksiyondan çık
}
//hiçbir return çalışmadıysa yani fonksiyondan çıkmadıysa bu satıra ulaşır, yani sayı 5 basamaklıdır.
printf("%d\t%d\t%d\t%d\t%d\t", b5, b4, b3, b2, b);
}
aşağıdaki printf le de boşluklu yazdırılabilir:
printf("%5d%5d%5d%5d%5d", b5, b4, b3, b2, b);//%5d yazdırılacak sayı için 5 karakterlik alan ayırıyor. sayıyı sola dayalı yazdırıyor. örneğin 1 basamaklı sayı ise sağda 4 karakterlik alan boş kalıyor.
97
C Programlama Dili / Sayıyının rakamlarını Boşluklu Yazdırmak
« Son İleti Gönderen: okko 30 Tem 2015, 22:49:26 Prş »
Merhabalar,
  Prgrama yazılan 1-5 basamak arasında(ve dahi) sayıların her bir basamağında \t kadar boşluk bırakarak yazdıracak bir program çıktısı almak istiyorum.
Programı yazdım fakat sadece 5 Basamaklı çıktısı doğru.123 sayısını giriş yapıp Debugging yaptığımda b5 e çok yüksek bir sayı atıyor ve b4'de de 0 rakamını atıyor.Nasıl düzeltebilirim?
  Programın sadece 5 basamaklı bir sayıda çalışmasını engellemek için if komutları koydum ama olmadı.If komutlarını kaldırınca olmayan her basamağa 0 değerini atıyor.

Kod: [Seç]
#include<stdio.h>

void bosluk (int sayi1);

int main( void )
{
int sayi;
scanf("%d", &sayi);

bosluk( sayi );
}

void bosluk ( int sayi1 )            //b birler basamağı...b2 onlar basamağı..b3 yüzler basamağı..b4 binler basamağı..b5 on binler basamağıdır.
{
int b;
int b2;
int b3;
int b4;
int b5;


b=sayi1%10;   //Birler basamağını bulmak için

if(sayi1!=b)    // eğer sayi bir basamaklıysa aşağıdaki işlemi yapmaması için if koşulunda eşitsizlik var.
b2=(sayi1%100-b)/10;

if(sayi1!=10*b2+b)
b3=(sayi1%1000-10*b2-b)/100;

if(sayi1!=100*b3+10*b2+b)
b4=(sayi1%10000-100*b3-10*b2-b)/1000;

if(sayi1!=1000*b4+100*b3+10*b2+b)
b5=sayi1-1000*b4-100*b3-10*b2-b;

printf("%d\t%d\t%d\t%d\t%d\t", b5, b4, b3, b2, b);
}
98
C Programlama Dili / Ynt: char'ı okumuyor.
« Son İleti Gönderen: okko 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);
}
99
C Programlama Dili / Ynt: char'ı okumuyor.
« Son İleti Gönderen: zafer11 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);
100
C Programlama Dili / char'ı okumuyor.
« Son İleti Gönderen: okko 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 ?
Sayfa: 1 ... 8 9 [10]