Böyle tek tek yapmana gerek yok, bir for yapısıyla dizinin içteki elemanını birer artırarak yaptırabilirsin. Ayrıca ReadLine'ları unutmuşsun. Soruna gelince, if yapısı kullan. Üç değişken belirle buyuk50,kucuk50,esit50. Eğer 50'ten büyükse buyuk50 bir artır tarzında bir işlem. Birazdan kodları eklerim, görürsen o zamana kadar üstünde düşünecek vaktin olur. Ekleme: Kodları ekledim, az önce C'den çıktım. Hata yaptıysam da sen ana mantığı kavramışsındır. Yine takıldığın bir nokta varsa yardımcı olmaya çalışırım. Kolay gelsin.
ortalama=toplam/20; |
Yardımınız için çok teşekkür ederim fakat yapmak istediğim şey aşağıdaki gibi olacak, yani sonuçlar en sonda belirecek . Örneğin; 1.Notu gir: 40 2.Notu gir: 60 Toplam & Ortalama: 100 & 50 50'den büyük notlar: 2.Not:60 50'den küçük notlar: 1 adet 50 olan notlar: 0 adet gibi burdan sonra nasıl yol izleyebiliriz. { |
50'den büyük, küçük ve eşit olanları tek tek(hangi not hangi değer) yazdırmak istiyorsunuz, doğru mu anladım? |
Evet dediğiniz gibi. 1. Girilen 20 tane notun toplamını ve ortalamasını yazdırmasını 2. 50'den büyük olan notları yazdırmasını 3. 50'den küçük olan notların ise adedini 4. 50 olan notların ise toplamını yazdırmasını istiyorum ve bunları son kertede göstersin yani 20.sayıyı girdikten sonra.. Şu kodda 1. adımı gerçekleştirdim sanırım. int[] notlar = new int[20]; |
ort = toplam / 20; Bu ifadeyi for döngüsü içerisinden çıkarabilirsiniz. Gereksiz işlem yapılmamış olur, her seferinde ortalamayı hesaplamasına gerek yok. Eğer 50'den büyük olan notlar için kaçıncı not olduğunun bir önemi yoksa işlem daha basit. Diğer türlüyse de biraz fikir vermiş olayım. notlar girdisi alındıktan sonra if(notlar>50) buyuk50den[j]=notlar; j++; diye bir dizi daha kullanabilirsiniz. Burada yaptığımız 50'den büyük olanları kaydetmek için ayrı bir dizi kullanmak. Peki sıra için ne yaparız? Onda da aynı mantık, bir deneyin isterseniz. Çok zor gelirse yine yardımcı olayım. Biraz karışık gibi gelebilir çünkü ilk seferde. garui görürse de daha farklı yoldan çözüm önerebilir belki. Benim aklıma bazen kompleks veya cins cins yollar gelir :) |
Dediğinizi anladım 50 den büyük sayılar için ayrı bir dizi oluşturup o diziyi yazdıracağız. Yazdığınız diziyi yazdığınız şekilde nasıl tanımlayabilirim biraz daha ayrıntılı gösterebilirseniz iyi olur, teşekkürler tekrar. |
Tamam o zaman şöyle bir deneyelim bakalım oluyor mu. int[] notlar = new int[20]; Biraz daha farklı olabilirdi ama dümdüz yazdım, ilk aklıma böyle geldi. Anlamadığın noktalar olmuş olabilir, lütfen sor. |
Artık olduğu kadarıyla :) Çeşitli yöntemleri öğrenmiş oldum sayenizde, ara sıra bölümüm nedeniyle buraya soru soruyorum. Sizi daha fazla meşgul etmek istemem, yardımınız için çok teşekkür ederim. Kendinize iyi bakın ![]() |
Rica ederim buraya dinlenmeye geliyorum, seve seve cevaplarım. Ben cevaplamassam arkadaşlar cevaplar. Olduğu kadarıyla deme, sen zaten programı şöyle detaylıca bir 5-10 dakika bakınca olayı anlarsın ![]() 50'den büyük sayılar için bir dizi oluşturduk. 50'den büyük sayıları not sırasına göre o diziye kaydettik. Sonra döngü dışında yazdırma işlemi yaptırmak için, yine girilen notları gözden geçirdik. 50'den büyük olduğunda sayıyı yazdırdık. Diziye de gerek yoktu ama, mantığı kolay kavransın diye ekledim. Sen de kendine iyi bak ![]() |
merhaba arkadaşlar. c de WM_KEYDOWN WM_KEYUP komutları nasıl kullanılır ? bu komutlarla ctrl+c/v gibi komutlar uygulanabilir mi? |
![]() |
fflush(stdin); yapısı yerine fonksiyon olmayan nasıl bir yapı kullanabilirim? |
Bu soruna cevap oluyor mu jervis? Veya tam olarak yapmak istediğin nedir? http://www.sorucevap.com/bilisimteknolojisi/programcilik/c/ders.asp?206634 |
Ben teşekkür ederim Yüzbaşım. ![]() |
fflush(stdin) bir fonksiyondur,ben fonksiyon kullanmadan bu işlevi yapabilecek kod varmıdır diye soruyorum? |
selam arkadaşlar c de main () fonksiyonuna parametre aktarımı ile ilgili sorum var soru: a,b,c birer tamsayı olmak üzere, belirsiz sayıda verilen (a,b,c) değer grubu için Y=a+2b+3c değeri hesaplanıyor. Buna göre, a) Y değerlerinin mutlak değerlerinin toplamını, b) Elde edilen tüm Y değerleri içerisinde ikinci ve sondan ikinci olan Y değerlerini ve hangi (a,b,c) den elde edildiğini, bulup yazdıran bir C programı yazınız. soruyu code blocksta çözdüm hata varmı bilmiyorum ama sorun şu ki code blokcsta programı çalıştırdım ama parametreleri nerden gireceğimi bilmiyorum yardımcı olursanız sevinirim #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argsay,char*argvek[]) { int i,k=0,top,y; for(i=1;i<argsay;i=i+3) { y=atoi(argvek)+atoi(argvek[i+1])+atoi(argvek[i+2]); top=abs(y)+top; k++; if (k==2) printf("2 y degeri=%d",y); if(k==argsay-1) printf("sondan 2.y degeri=&d",y); } printf("toplam degeri=%d",top); getch (); return 0; } |
kolay gelsin arkadaşlar. Arkadaşlar visual studio ile report oluşturuyorum programın içinde. MDb den oluşturduğum raporu bir sütuna göre sıralıyor. ama sıralama yaparken istiyorumki Abdulkadir doğa haluk.ikincisi abdulkadir doğa kazım şekilde sıralarken program sıralamayı abdulkadir doğa haluk kazım eğriö mahmut şeklinde sıralıyor. yani aynı ismi bir kere yazıyor. ekli resimde mevcut. ben istiyorumki: abdulkadir doğa haluk abdulkadir doğa kazım abdulkadir eğriö mahmut şeklinde raporda sıralasın istiyorum. bu şekilde nasıl yazdırırır report da.Acil yardıma ihtiyacım var. < Resime gitmek için tıklayın > |
c yi tam hatırlayamıyorum ama parametre giremiyorum dediğin değer girmekmi scanf imi soyluyorsun anlamadım ve up ayrıca |
şu kodu c'ye çevirebilecek var mı, çok acil ihtiyacım var, şimdiden teşekkürler. #include <iostream> #include <time.h> using namespace std; int x[21], i, j; int main(){ srand(time(0)); cout<<"20 elemanli dizi:\n"; for(i=1; i<=20; i++){ x=rand()%21; } for(i=1; i<=20; i++){ cout<<x<<"\t"; } cout<<"\n\nIndisleri eklenmis hali:\n"; for(i=1; i<=20; i++){ x=x+i; } for(i=1; i<=20; i++){ cout<<x<<"\t"; } cout<<"\n"; system("PAUSE"); } |
Bu mesaja 1 cevap geldi. Cevapları Gizle