Kullanıcıdan size büyüklüğünü nerede istemişsin onu anlamadım. Was here...

Kodda yanlış yaptığın yerler Birincisi sabit olması gereken dizi boyutunu değişken olarak almaya çalışmışsınİkincisi garip sayıların çıkmasının nedeni senin dizinin o elemanlarına hiç değer atamamış olman. for(i=0; i<size; i++) scanf ;// size'ın yerine i değişkenini koyacaksınorada size yaparsan hep aynı elemana atarsın. Yani adam boyutu 3 girdiyse dizinin 3. elemanına atanmış olur. Pointer konusuna gelirsek şu an için kullanımını bil yeterscanf ; int dizi=new int ;dizi =111; ... int dizi=new int ; int 10 kadar bellek alanı ayrılır ve başlangıç adresi dizi pointerına atanır.

mingw aga valla 3 derleyici baktım... dev c++ turbo c ve mingw... en rahatı mingw geldi... bana ss yollayabilirmisin?harbi harbi buluormu bu pro şimdi diziye en yakın 2nci sayıyı?birde pm mine msn attım eklersen daha rahat olur iletişim... cok saolasın tekrardan...

Hoca eğer anlattığını doğru anladıysam program bu. Bugün canım sıkılıyordu senin şeye bakayım dedim :)) #include<stdio. h>int main { int size=0, toplam=0, min1, min2; printf ; scanf ; int dizi=new int ; for(int i=0;i<size;i++) toplam/=size; //ortalama min1=dizi ; for(i=0;i<size;i++) min2=dizi ; for(i=0;i<size;i++) { if(min2 min1) if(min1!=dizi ) { if(min2>dizi ) } } printf("%d", min2); return 0;}

Hoca benim kodda sorun yok. Visual C++ 6.0'da yazdım. Senin derleyici bktan bence :)

tam olarak yapmak istediğim şey şu: bir dizinin ort yakın 2. nyi dizi içindeki elemanlardan bulduran fonksiyonu yazma... yani dizi ortalamasına yakın 2nci sayıyı bulduran programa ihtiyacım var... ben algoritmamı verdim üstte ama başka türlü nasıl yaparım yada en makulu dediğimmidir?ben ilk yazdıgım kodda nerde yannış yaptım neden abuk bir sayı verior bana ortalama istediğimde bir fikri olan varmı? birde su noktada takıldım:ortalamasını aldıktan sonra dizi elamenlarını cıkarıorum diziye nasıl sıralıcam ben bunnarı... gene absürd sayıları eşitlior bu noktada bir yol gsterin? bir hal yordam gsterirsenız cok sevinirm dipnot: size büyüklüğünü int main den sonra 3ncü satırdan sonra istedim... dipnot 2: pointerları hic bilmiorum ogrenırım ama ogrenene kadar bunun uzerınde kafa yormak istiorum o kısmı bana yazabilirmisin tam olarak her yerde gerekiorsa başka nasıl yaparım yada yapabilirmiyim?dizi icerisindekileri kullanıcı girsin istiorum sadece ben elimle vermiyeyim...

Dizi boyutunu sonradan belirleyemezsin. Boyutu sabit tanımlaman lazım. Fakat bunun çıkış yolu olarak pointerları kullanıyoruz ve hafızada sonradan alan ayırıyoruz. scanf ; int dizi=new int ; //sizedaki değer kadar bellek alanı ayırır.

http://img46.imageshack. us/img46/434/71031275wl5. jpghttp://img49.imageshack. us/my. php?image=30206864iu0. jpgfirex su resimlere bir bak anlıcaksın derdimi derman olabilirsin umarım:)birde en son acıkladım ne yapmak istediğimi net olarak... ona goremı yazdın yoksa başka bişimi anladın... olay if lerde kopuor hafiften bastıda işte senın kadar hakim deilim daha...

Bazı değişkenleri sıfırlamamışsın, hafızada ayrılan yerde ne yazıyorsa o değeri alıyorlar Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı ktektir!

Abi tam olarak matematiksel olarak ne yapmak istedigini net olarak belirtsene. Hep denedin. Hep yenildin. Olsun yine dene, yine yenil ama daha iyi yenil!

aga mantıgı czemedim tam olarak biras daha bahsedermisin pointerlardan?misal:#include<stdio. h>#include<math. h>#include<conio. h>#include<time. h>int main { int i, y, k, size, max1, max2; float j; double ortalama; int dizi=new int ; float toplam=0; scanf ; int a ; for(i=0; i<size; i++) scanf ; for (i=0; i<size; i++) toplam += a ; ortalama = toplam/size; printf ; for(k=0; k<size; k++) buraya kadar herşey normal... dizi elemanlarını kişi kendi girior ve cıkartıorum dizi elemanlarını.. bu cıkarılan sayıları nasıl 2nci bir diziye oturtucammesela 3,4,5 verdim... ortalaması 4...4-3=1 4-4=0 4-5=-1... a2 = nasıl bu hale gelicek... tmm pointer ile alan yaratıorz yenı nesnemiz icin tmm ama nasıl eşitlicez istediklerimizi istediklerimize?int dizi=new int ;dizi =111; ... burayı cozemedım ilk satır tmmda 2nci satıra bağlantı kuramadım... biliorum pointer bilmeyen birine annatmak zor ama bir yandanda pointer calısıorum burda, bir yandanda senın ogrettiklerini uygulamaya calısıorum saolasın bilgiler icin

int i, y, k, size, max1, max2; float j; double ortalama; scanf ; int dizi=new int ; float toplam=0; int a ;ncelikle scanf'i üste alacaksın çünkü senin girdiğin değere gre bellek alanı ayrılacak. pointerlar adres tutarlar. int dizi; bu şekilde pointerı tanımladıkdizi=new int ;new ile bellek alanı ayırdık. Yani 10 tane int kadar ve başlangıç adresini diziye atadık. sıralı olarak bellekte ayrılıyor. dizilerde aynıdır.105. adres başlangıç adresiyse 10 tane int kadar yer ayırırsan int 4 byte kaplar.105,109,113,117... gider. sen dizi dersen 105 numaralı adresedizi dersen 109 numalı adrese gidersin. Kullanım şekli aynıdizi =atayacağın değer.

ya hocam kafayı sıyırıcam az kaldı:@:@:@şimdi firex ellerin zeval gormesin cok buyuk bir mantık gosterdin bana cok saolasın ben düşündümki 2 türlü yapabilirim1nci yol:1-)once diziye girdirtirim ortalamasını aldırtırım ben bunun2-)ortalamadan kucuk sayılar ile bir dizi yaratırım 3-)bu dizideki en büyük 2 sayıyı bulur biere kaydederim4-)ortalamadan büyük sayılar ile bir dizi yaratırım 5-)bu dizideki en kücük 2 sayıyı bulur biere kaydederim...6-)bu dizilerdeki sayıları ortalamadan cıkarırım farkı en kücük 2nci sayı olan benım sayımdır ama burda farkı alınan sayıdan nasıl ilk sayıya geri donecegımı de bılmıorum yanı baya cetefilli bir yol...2nci yol:1-)dizi girilir ve ortalama bulunur2-)ortalamadan bütün sayılar cıkartılır bu farklar ile bir dizi yaratılır3-)bu yaratılan dizide en kücük 2nci sayı bulunur4-)bu en kucuk 2nci sayı hangi sayıdan elde edilir o bulunur... ama şimdi kitlendiğim yerlerde şyle2nci yolun 3 ve 4ncü basamakta kitleniorum yok yanı pointerla yaparsın dedin sen ama benım oyle bir kavrama ulaşabilmem icin biras daha calısmam lazım tam hakim olmam lazımsenın yazdıgın programda 2 hata alıorum int dizi=new int ; for(int i=0;i yaptıgın yerde i scope alanında tanımlanmamış dior... ilk mainde tanımlıorum onun yerine bu sefer de cevap abuk sabuk bir rakam verior... ornegin dizi boyutu:4 5678 girdim sayılarada... cevap -1 dior... lütfen bir yardımcı ol nerdeyse lüm kalım meselesi haline dndü program:(:(bunu bir türlü ogrenıcem yazınca ama ozmna kafayı sıyırcam bilg başında:(

Hoca o forumdan kaynaklanıyor eksik çıkmış kodlar upload ettim rapidehttp://rapidshare.com/files/27728523/Cpp1. cpp.html

Derlenmiş dosyada içinde hoca. http://rapidshare.com/files/27751649/ort. rar.html

#include<stdio. h>#include<math. h>#include<conio. h>#include<time. h>int main byle son derece basit bir kod yazdıgımda cevabı cok ucuk bir rakam alıorumornegin size yerine 3 giriorum, sayılarada 3 3 3 veriorum ortalama 3 cıkması gerekirken 672557748 alıorum?ben nerde yanlış yapıorum kodlarda bir sorun gozume carpmadı ama bierde sapıtıor heralde, mingw kullanıorum ama derleyeciden oldugunu sanmıorum bukadar basit koda nerde hatavar?ortalamaya en yakın 2nci sayıyı bulmaya calısıorumalgoritma olarak şyle düşündüm dogrumu sizcede?1-)kullanıcıya kac sayı giricegini sor ve bu sayılara diziye ata2-)dizinin ortalamasını al3-)dizinin ortalamasından bütün dizi elemanlarını ayrı ayrı cıkar ve bir dizi yarat bundan 4-)bu farklardan yaratılmış dizide en kucuk 2nci sayı benım istedigim sayı olucaktır bundan başka bir algoritma yada yardım edebilecek şekilde c bilginiz varsa yardımlarınızı esirgemeyin lütfen