C De Ufak Basit Bi Problemim Var :|
-
#include<stdio.h>
#include<conio.h>
#include<math.h>
int a;
double c,d;
float b;
char e,E;
main()
{
start:
printf("sayi:");
scanf("%d",&a);
b=sqrt(a);
c=fabs(b);
d=c*c;
if(a==d)
printf("tam kare.!!\n");
else
printf("\atam kare degil!!\n");
printf("tekrarlamak icin e'ye basın\n");
scanf("%s",&e);
if(e==e||e==E){
printf("\n");
goto start;
if else
printf("\n ");
goto end;}
end:
getch();
return 0;
}kodlar bunlar , tam kare olup olmadıgını hesaplıyo ama sonuna tekrarlamak için dalga koydum if else de yanlış var diyo :| bi yardım edebilirmisinz müridler??
-
baya bi hata var programda. sqrt de kullanacağın değişkenleri double seç öncelikle .
if in içindekileriide e=='e'||e=='E' yap. e yi scanf string değil char yap %c
birde scanf lerdeki %d leride düzeltmeyi unutma
-
hojam sadece
if else
printf("\n ");
goto end;}
end:
getch();
return 0;
}kısmında if else'i kırmızıya alıo,hata verio if else kısmında diğer dediklerini yaptım :|ama if else'in de problem war :S
-
editörden kopyala yapıştır yapmadın heralde.
if else
printf("\n")
diye bir kodlama ilk kez görüyorum. ayrıca else ye geçeceğinde if in { ini kapatıcan else için ayrıca açıcaksın
} // if kapandı
else {
printf("\n ");
goto end;}
end:
getch();
return 0;
}
-
Kardesim bilmiyorum hallettinmi ama belkide gecte oldu fakat yeni gordum problemini senin icin bir program yazdim aciklayici olsun diue cunku yazmis oldugun kodda bazi pre initialize lar yok ne bileyim goto kaliplari var iyi bir muhendislik icin olmayan hareketler :) if else filan ama else le bitmiyor falan filan yardimci olsun diye bende yazdim umarim beyenirsin.aciklamalar gereksiz oldu aslinda gereksiz aciklama yine kotu muhendislik fakat mazur gor kaptirmisim kendimi :)
#include <stdio.h> // standart kutuphanemizden biri I/O icin gerekli
#include <stdlib.h> // exit_success exit() atexit() gibi ve vb seyler icin
#include <math.h> // matematik fonksiyonlarimizi kullanmak icin
#include <ctype.h> // toupper tolower gibi fonksiyonlar icin
//#define NDEBUG // bunu eklersek debug kapanicak fakat assert.h i ekldik hata verirse hatalarimizi ayiklasin istiyoruz
#include <assert.h> // C dilinin hata icin yonetim sinifi
#ifdef _WIN32 // eger bu kod Windowsta derlenirse conio.h i calistir , ben linuxta calisiyorum portable olsun diye sen windowstaysan
#include <conio.h> // sen istedigin ornekte ekledik diye ekleme yaptim
#endif // ifdef in bitisolayi if else gibi
void hoscakal(void) // bu fonksiyonu program kapandiktan sonra calistirsin diye yaptik :) programin gule gule mesaji
{
printf("\"nickneyime\" nin yazdigi programdan cikiyorsunuz..Hoscakalin\n");
}
int main(int argc,char *argv[]) // main fonksiyonumuza giriyoruz argumanlar gereksiz fakat istersen kullan iyi olur
{
atexit(hoscakal); // atexit fonksiyonu program bittiginde icine aldigi fonksiyonu calistirir yani dusun main() bittikten sonra calisan fonksiyonu belirtirsin
// ard arda atexit() ler yaparsan FILO olarak calisir yani first in first out (ilk giren son cikar)
fflush(stdin);fflush(stdout); // programa girmeden once input ve outputlari flashliyoruz maksat temizlik olsun ortam streamler temizlensin
#ifdef _WIN32 // yine windowstaysak su islerimleri yap demek icin bunu kullaniyoruz
system("title nickneyime"); // acilan MsDos Shell inin basligini degistrir
system("COLOR 0A"); // MsDos Shell inin arka plan rengini 0 yapar yani siyah yazilari A yani yesil :) matrix gibi olsun
system("cls"); // programa baslamadan once Shell in ekranini temizler
#else // else if teki gibi eger windowsta derlenmicekse Linux Shelle gonderiyoruz linuxta clear kullaniyoruz cls yerine
system("clear");
#endif
int i_value1=0,i_value2=0,check=0; // integer degerlerimiz tutucak ve initialize ediyoruz 0 la fonksiyon icinde tanimliyoruz global yapma hic bir zaman ozel durumlar haric
double d_value1=.0; // double degerimiz kok u tutucak 0 a esitliyoruz yani doublelar icin 0.0
char choise; // Evet veya Hayir secenegini tutucak
printf("***************************************************************\n"); // programin girisini olustursun diye susleyelim dedik :)
printf("\"nickeyime\" tarafindan kodlanmis girilen sayilarin tam kare\n");
printf("olup olmadigini kontrol eden programa hosgeldiniz \n");
printf("***************************************************************\n");
for(;;) // sonsuz donguye sokuyoruz kullanici H yani hayiri secene kadar yada ESC tusuna basip enterlayincaya kadar
{
printf("Lutfen kontrol etmek istediginiz sayiyi giriniz\n");
scanf("%d",&i_value1);
assert(d_value1 = sqrt(i_value1)); // C++ deki try catch olaylari gibi hata ayiklamak icin assertin icinde yaptiriyoruz hatali birsey olursa debug olucak
// burda klavyeden girilen sayinin kokunu alip double a esliyoruz cunku sqrt double dondurur
assert(i_value2 = (int) d_value1); // burda ise double degerini floating kismini kaybederek budayarak bir integer a atiyoruz boylece ondalikli kisim budandi
assert( pow(i_value2,2.0) == i_value1 ? check = 1 : 1 ); // double dan int e aldigimiz kok sayinin karesi ilk girilene esitmi :) esitse check 1 oluyor yani dogru
if(check) // yukarda kisaltilmis if ifadesinden gelen check in degeri dogruysa yani check = 1 ise tam kare oldugunu anliyoruz
{
printf("Girmis oldugunuz sayi \"%d\" , tam karedir;koku : \"%.0lf\" dir.\n\n",i_value1,d_value1);
}
else // check in ilk basta initialize ettigimiz gibi 0 olarak korundugunu anlarsak tam kare degil oldugun anliyoruz
{
printf("Girmis oldugunz sayi \"%d\" , tam kare degildir \n\n",i_value1);
}
printf("Devam etmek istiyormusunuz ?\n");
printf("Evet icin E/e veya Hayir icin H/h\n"); // kullaniciya tamammi devammi diye soruyoruz 'E','e','H','h' ve ESC nin degeri olan 27 secenekleri girebilir
scanf("%s",&choise);
assert(choise = toupper(choise)); // kullanicinin secimini buyuk harfe ceviriyoruz daha rahat check edelim diye yine assertle hataya karsi destekliyoruz
if(choise == 'H' || choise == 27) break; // kullanici eger 'H' ,'h' veya ESC tusuna basip enterlarsa cikis yaptiriyoruz , bu if le break yapip for looop unu kiriyoruz
else continue; // eger kullanicinin secimi yukardakisnden farkli ise for dongusunu continue ile devam ettiriyoruz
}
#ifdef _WIN32 // buda yine windowstami oldugunu check edip windowstaysan msdos shell inin ekranda durmasi icin PAUSE yaptirior shelli
system("PAUSE");
#endif
return EXIT_SUCCESS; // buraya geldiysek basarli sekilde cikiyoruz galiba stdlib te exit_success 0 olarak atanmis olmaliysi sadece okunabiliritesi icin boyle yaziyoruz
}kodu burdan alip duzenlemek zor olur diye ftp me upload ettim..
link => http://www.xsparkx.com/ibrahim/nick.c
hadi iyi aksamlar kardesim yardim gerekirse mr.spark@gmail.com adresini msn olarak ekliyebilirsin.
-
SpArK bunu yazdı:
-----------------------------Kardesim bilmiyorum hallettinmi ama belkide gecte oldu fakat yeni gordum problemini senin icin bir program yazdim aciklayici olsun diue cunku yazmis oldugun kodda bazi pre initialize lar yok ne bileyim goto kaliplari var iyi bir muhendislik icin olmayan hareketler :) if else filan ama else le bitmiyor falan filan yardimci olsun diye bende yazdim umarim beyenirsin.aciklamalar gereksiz oldu aslinda gereksiz aciklama yine kotu muhendislik fakat mazur gor kaptirmisim kendimi :)
#include // standart kutuphanemizden biri I/O icin gerekli
#include // exit_success exit() atexit() gibi ve vb seyler icin
#include // matematik fonksiyonlarimizi kullanmak icin
#include // toupper tolower gibi fonksiyonlar icin
//#define NDEBUG // bunu eklersek debug kapanicak fakat assert.h i ekldik hata verirse hatalarimizi ayiklasin istiyoruz
#include // C dilinin hata icin yonetim sinifi
#ifdef _WIN32 // eger bu kod Windowsta derlenirse conio.h i calistir , ben linuxta calisiyorum portable olsun diye sen windowstaysan
#include // sen istedigin ornekte ekledik diye ekleme yaptim
#endif // ifdef in bitisolayi if else gibi
void hoscakal(void) // bu fonksiyonu program kapandiktan sonra calistirsin diye yaptik :) programin gule gule mesaji
{
printf("\"nickneyime\" nin yazdigi programdan cikiyorsunuz..Hoscakalin\n");
}
int main(int argc,char *argv[]) // main fonksiyonumuza giriyoruz argumanlar gereksiz fakat istersen kullan iyi olur
{
atexit(hoscakal); // atexit fonksiyonu program bittiginde icine aldigi fonksiyonu calistirir yani dusun main() bittikten sonra calisan fonksiyonu belirtirsin
// ard arda atexit() ler yaparsan FILO olarak calisir yani first in first out (ilk giren son cikar)
fflush(stdin);fflush(stdout); // programa girmeden once input ve outputlari flashliyoruz maksat temizlik olsun ortam streamler temizlensin
#ifdef _WIN32 // yine windowstaysak su islerimleri yap demek icin bunu kullaniyoruz
system("title nickneyime"); // acilan MsDos Shell inin basligini degistrir
system("COLOR 0A"); // MsDos Shell inin arka plan rengini 0 yapar yani siyah yazilari A yani yesil :) matrix gibi olsun
system("cls"); // programa baslamadan once Shell in ekranini temizler
#else // else if teki gibi eger windowsta derlenmicekse Linux Shelle gonderiyoruz linuxta clear kullaniyoruz cls yerine
system("clear");
#endif
int i_value1=0,i_value2=0,check=0; // integer degerlerimiz tutucak ve initialize ediyoruz 0 la fonksiyon icinde tanimliyoruz global yapma hic bir zaman ozel durumlar haric
double d_value1=.0; // double degerimiz kok u tutucak 0 a esitliyoruz yani doublelar icin 0.0
char choise; // Evet veya Hayir secenegini tutucak
printf("***************************************************************\n"); // programin girisini olustursun diye susleyelim dedik :)
printf("\"nickeyime\" tarafindan kodlanmis girilen sayilarin tam kare\n");
printf("olup olmadigini kontrol eden programa hosgeldiniz \n");
printf("***************************************************************\n");
for(;;) // sonsuz donguye sokuyoruz kullanici H yani hayiri secene kadar yada ESC tusuna basip enterlayincaya kadar
{
printf("Lutfen kontrol etmek istediginiz sayiyi giriniz\n");
scanf("%d",&i_value1);
assert(d_value1 = sqrt(i_value1)); // C++ deki try catch olaylari gibi hata ayiklamak icin assertin icinde yaptiriyoruz hatali birsey olursa debug olucak
// burda klavyeden girilen sayinin kokunu alip double a esliyoruz cunku sqrt double dondurur
assert(i_value2 = (int) d_value1); // burda ise double degerini floating kismini kaybederek budayarak bir integer a atiyoruz boylece ondalikli kisim budandi
assert( pow(i_value2,2.0) == i_value1 ? check = 1 : 1 ); // double dan int e aldigimiz kok sayinin karesi ilk girilene esitmi :) esitse check 1 oluyor yani dogru
if(check) // yukarda kisaltilmis if ifadesinden gelen check in degeri dogruysa yani check = 1 ise tam kare oldugunu anliyoruz
{
printf("Girmis oldugunuz sayi \"%d\" , tam karedir;koku : \"%.0lf\" dir.\n\n",i_value1,d_value1);
}
else // check in ilk basta initialize ettigimiz gibi 0 olarak korundugunu anlarsak tam kare degil oldugun anliyoruz
{
printf("Girmis oldugunz sayi \"%d\" , tam kare degildir \n\n",i_value1);
}
printf("Devam etmek istiyormusunuz ?\n");
printf("Evet icin E/e veya Hayir icin H/h\n"); // kullaniciya tamammi devammi diye soruyoruz 'E','e','H','h' ve ESC nin degeri olan 27 secenekleri girebilir
scanf("%s",&choise);
assert(choise = toupper(choise)); // kullanicinin secimini buyuk harfe ceviriyoruz daha rahat check edelim diye yine assertle hataya karsi destekliyoruz
if(choise == 'H' || choise == 27) break; // kullanici eger 'H' ,'h' veya ESC tusuna basip enterlarsa cikis yaptiriyoruz , bu if le break yapip for looop unu kiriyoruz
else continue; // eger kullanicinin secimi yukardakisnden farkli ise for dongusunu continue ile devam ettiriyoruz
}
#ifdef _WIN32 // buda yine windowstami oldugunu check edip windowstaysan msdos shell inin ekranda durmasi icin PAUSE yaptirior shelli
system("PAUSE");
#endif
return EXIT_SUCCESS; // buraya geldiysek basarli sekilde cikiyoruz galiba stdlib te exit_success 0 olarak atanmis olmaliysi sadece okunabiliritesi icin boyle yaziyoruz
}kodu burdan alip duzenlemek zor olur diye ftp me upload ettim..
link => http://www.xsparkx.com/ibrahim/nick.c
hadi iyi aksamlar kardesim yardim gerekirse mr.spark@gmail.com adresini msn olarak ekliyebilirsin.
-----------------------------eywallah hojam çok saolasın uurasmişsin belli :)) halletttim bn problememimi ama ekliyom msne sni :)) güsel yazmışşsn açıklayıcı :)) birazdan incelicem hepsini
-
AL bakalım size öğretilen şekilde sizin anlayabileceğiniz dilde :9
#include<stdio.h>
#include<conio.h>
#include<math.h>
int a;
double c,d;
float b;
char e,E;
int main()
{
start:
printf("sayi:");
scanf("%d",&a);
b=sqrt(a);
c=fabs(b);
d=c*c;
if(a==d)
printf("tam kare.!!\n");
else
printf("\atam kare degil!!\n");
printf("tekrarlamak icin e'ye basın\n");
scanf("%s",&e);if(e=='e'||e=='E')
{
printf("\n");
goto start;
}
else
{
printf("\n ");
goto end;
}
end:
getch();
return 0;
}
