Yazar |
|
iemre
Anadolu
Kayıt: 26.05.2007 |
|
Arkadaşlar benim sorunum şu.Ekrandan bir sayı giriyorum ve bu sayıyı %s ile bir diziye atıyorum.Yani her rakam char cinsinden bir dizinin elemanlarını oluşturuyor.Ben bu char olan diziyi int türüne dönüştüremezmiyim.Bir de ekrandan değil de kodun içerisinde ki bir sayıyı ekrandan girmeden char olan bir diziye atayamazmıyım.Ben istiyorum ki sayının rakamları char cinsinden olan dizinin elemanlarını oluştursun.
Bir başka sorum da şu.Herhangi bir fonksiyondan iki adet değişkeni aynı anda return edebilirmiyim.Mesela ilk önce fonksiyon içerisinde bir sayı giriyorum ekrandan.Bunu döndürmek istiyorum ve de diyelim ki bazı işlemler yaptım aynı fonksiyon içerisinde ve de bu işlemin sonucunu döndürmek istiyorum.
Yardımcı olursanız sevinirim.
More than one
|
|
Yazar |
|
onur
Two Story Town
Kayıt: 14.01.2006 |
|
-C ve C++ bilgin cok iyi olmasa da sunlari hatirliyorum:
atoi ve itoa diye iki fonksiyon var char dan int e ve int ten char a conversion icin.string den int e ve intten string e de olabilir.
Bunlar ile mesela char dizisi uzerinde donerek char a filan convert edebilirsin her indis teki degeri.
-Ayni fonksiyonu kullanarak iki sekilde faydalanmak istiyorsan bir flag koyarsin ya da bir parametre gonderirsin.
func (int a , int condition) gibi
condition ile gonderdigin degere gore return edecegin seyi degistirirsin falan eger yapmak istedigin bu tarz bir sey se.
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=363151&SiteID=1
http://www.tek-tips.com/viewthread.cfm?qid=1088107&page=1
http://www.ozzu.com/ftopic1723.html
|
|
Yazar |
|
adaniak
Kayıt: 13.01.2007 |
|
Benim de bi sorum var...Password şeklinde (*****) değer atamsı nasıl yapılabilir benim düşündüğüm getchar ile sonsuz dögü ve girilen her karaktere * atama..
daha basit bi fikri olan varsa veya c#taki gibi password için seçenek var arkadaşım diyen varsa yardımcı olursa ...sa sa sa sevinirm...
|
|
Yazar |
|
cengineer
Kayıt: 27.10.2006 |
|
Arkadaşlar yeni konu açmamak için buraya yazdım...Problemim şu;çıkmak için c tuşuna bastığımda exit olayını gerçekleştirmiyor program çıldırttı beni
| //rastgele seçilmiş sayılarla çarpma işlemi ...
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
int main()
{
int i=0,sayi1,sayi2,cevap;
char secim;
srand(time(NULL));
while(i<1)
{
sayi1=rand()%10;
sayi2=rand()%10;
printf("%d kere %d kac eder?",sayi1,sayi2);
scanf("%d",&cevap);
if(cevap == (sayi1*sayi2))
{
printf("TEBRIKLER, %d Dogru Cevap..",cevap);
}
else
{
printf("YANLIS , Cevap %d Olmaliydi",sayi1*sayi2);
}
printf("devam etmek icin d ye cikmak icin c bas");
scanf("%c",&secim);
if(secim == 'c')
exit(0);
else
getch();
system("cls");
}
return 0;
} |
" Her arayan bulamayabilir ancak bulanlar arayanlardir..! " Imam-i Rabbâni
|
|
Yazar |
|
serdr
Istanbul
Kayıt: 13.07.2006 |
|
C de öyle bişiy var, secim icin 1 karakter scanf yaptığında bir önceki entera bastığını okuyor %c olayı. o nedenle %c %c yaparsan, enazından sorunu çözer.
scanf("%c%c",&secim*/<-öylesine/* , &secim);
|
|
Yazar |
|
cantur
Rize
admin
Kayıt: 16.01.2006 |
|
Tek karakter okuyacak isen scanf yerine getch() türevi fonksiyonları kullanmak daha mantıklı olacaktır.
|
|
Yazar |
|
clairvoyant
Antalya
Kayıt: 05.05.2006 |
|
Sondaki tercih için şöyle bir kod daha iyi olur:
do {
printf("devam etmek icin d ye cikmak icin c bas...");
secim = getch();
if(secim == 'd')
break;
else if(secim=='c')
exit(0);
else {
printf("Hatalı giriş!");
}
} while(1);
Let`s make this world a better place to live !
|
|
Yazar |
|
cengineer
Kayıt: 27.10.2006 |
|
teşekürler
" Her arayan bulamayabilir ancak bulanlar arayanlardir..! " Imam-i Rabbâni
|
|
Yazar |
|
adaniak
Kayıt: 13.01.2007 |
|
Clairvoyant'ın dediği daha mantıklı dier türlü geri dönüş olayı yok..Sürekli fonksiyonun tekrar ediyor...
Daha sempatik bişey istiyorsan select case kullan
1 Çıkış
2 Devam dersin bu arada ilk yaptığında %c değil de %d deyip c yerine 99 yazarsan yine oluyor ama dediğim gibi fonksiyon hep devam ediyor
|
|
Yazar |
|
clairvoyant
Antalya
Kayıt: 05.05.2006 |
|
Kodu değiştirdim, ilki pek iyi değildi. :D
Let`s make this world a better place to live !
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
clairvoyant yazdi | Sondaki tercih için şöyle bir kod daha iyi olur:
do {
printf("devam etmek icin d ye cikmak icin c bas...");
secim = getch();
if(secim == 'd')
break;
else if(secim=='c')
exit(0);
else {
printf("Hatalı giriş!
");
}
} while(1); |
Break, exit, goto kullanmak yasak. Sayısalda ödev yapanlar için
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
nohead
Tristram
Kayıt: 26.08.2006 |
|
wikipedia'daki switch -case örneği. beğendim kullanılışını da öğrendim böylece:)
switch(n) {
case 0:
printf ("You typed zero.");
break;
case 3:
case 5:
case 7:
printf ("n is a prime number");
break;
case 2: printf("n is a prime number");
case 4:
case 6:
case 8:
printf ("n is an even number");
break;
case 1:
case 9:
printf ("n is a perfect square");
break;
case:
printf ("Only single-digit numbers are allowed");
break;
}
"The will of the nation" is one of those expressions which have been most profusely abused by the wily and the despotic of every age."
Alexis de Tocqueville
¨
|
|
Yazar |
|
clairvoyant
Antalya
Kayıt: 05.05.2006 |
|
extreme yazdi | Break, exit, goto kullanmak yasak. Sayısalda ödev yapanlar için |
Birçok döngüde break kullanmak çok çok avantajlıdır. Kullanmasan bile aynı işi yapmak için bir flag kullanman gerekebilir. exit fonksiyonunu main içinde kullanmak tabii ki gereksiz, onun yerine return 0; gibi bir deyim kullanmak daha mantıklı. En güzeli main içinde return ifadesini en az sayıda (mümkünse 1 kez) kullanan bir algoritma kurmaktır. exit fonksiyonu alt fonksiyonlarun içinden uygulamayı sonlandırmak için kullanılır genelde. goto hakkında yorum yapmaya gerek yok, kısaca modası geçmiştir diyebiliriz. :)
Seni mi kıracam, buyur break ve exit'siz uygulama:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
int main()
{
int sayi1,sayi2,cevap,flag=0;
char secim;
srand(time(NULL));
do {
sayi1=rand()%10;
sayi2=rand()%10;
printf("%d kere %d kac eder?\nCevap: ",sayi1,sayi2);
scanf("%d",&cevap);
if(cevap == (sayi1*sayi2)) {
printf("TEBRIKLER, %d Dogru Cevap..\n",cevap);
}
else {
printf("YANLIS , Cevap %d Olmaliydi\n",sayi1*sayi2);
}
flag=0;
do {
printf("devam etmek icin d ye cikmak icin c bas...");
secim = getch();
if(secim == 'd' || secim=='c')
flag=1;
else {
printf("Hatali giris!\n");
}
} while(flag==0);
system("cls");
}
while(secim!='c');
return 0;
}
3 tane projem var bir de foruma kod yazıyorum, hiç uslanmayacam sanırım.
Let`s make this world a better place to live !
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | | | | |