int a[9]={2,7,4,1,6,3,8,5,9}
bir k sayısı verecez
örneğin 4.
4. sırada 1 sayısı 4. sırada 1 sayısı var 1 sayısını ordan çıkaracak daha sonra bi 4 daha gidip 5 i çıkaracak. daha sonra bir 4 daha sayacak(başa dönüyü burda) 4 sayısını çıkacak bu şekilde giderek son saıyı ekrana yazdırmam gerekiyor.
döngü ile yapacağm ama sayıları ordan çıkarıp son sayıyı nasıl bulacağım konusunda sıkıntım var.
Cevaplar
Yazdıklarından hiçbir şey anlamadım. Daha açıklayıcı olmalısın
orhun kitabelerini çözen bilim adamları inan benim kadar zorlanmamıştır :D açık bir şekilde maddeler halinde yaz elimizden geldiğince bir şeyler anlatmaya çalışırız.
ben açık anlatmaya çalıştım ama gene anlatamamışım :)
soruyu direk yazıyorum.
N kişi yuvarlak bir masa etrafında oturmaktadır. Oyunun kuralına göre 1. Oyuncudan başlayarak k tane sayılacak ve k. Oyuncu oyun dışına alınacaktır. Bu kurala göre en son klan kişi bulan program ?
* dizide 4. elemanı sildin
* dizinin eleman sayısı , 4 + 4 den büyük mü kontrol et
* eğer küçükse for döngüsüne sokup oradan 8. ve 12 elemanları silen kodu yaz.
*küçük değilse a dizisinin eleman sayısının modunu al(mesela 11 eleman var diyelim. 12. eleman hangisi aslında 1. eleman oluyor.onuda "dizideki eleman sayısı%4" dersin)
asıl önemli nokta dizi sayısının modunu alıp eleman çıkarmaya devam etmektir.
en son da bir kontrol eklersin. dizi sayısı 1 e eşit olduğunda diye. ekrana yazdırırsın.
not:çok iyi bilen biri değilim hatam kusurum varsa affola :)
çok güzel anlatmışsın. Tşk ederim. ama şu eleman çıkarma işlemini nasıl yapacam...
A
daha önce de söylediğim gibi gerçek dünya ve soru yakınsamasını yapamamışsın dostum.
diziye hiç dokunma.
aynı uzunlukta bir dizi daha oluştur ve elemanlarını 1 yap. arkasından sayma işlemini bu dizi içinde yap.
her 4te ulaştığın 1'i 0 yap ve bu işlemler sırasında 0 ları sayma. dizi boyutuna ulaştığında kalan son 1'in indexi üstteki dizideki son elemanın da indexi olacaktır.
rahatsızım yoksa sana pseudo halini de yazardım.
algoritma'da 0'a setleme olduğu için asıl dizide çalışmıyoruz. adam gider de diziye eleman olarak 0 girerse algoritmamız 0 kontrolü yaptığı için patlayacaktır :)
E
ikinci bir dizi açıp, bir döngü ile 1 nci diziyi yeni diziye aktarırsın. her 4 ncü elemanı aktarmazsın, aradan çıkmış olur ;)
A
eSa arkadaşın derdi zaten aktarmak kavramında. Yani aktar dedin mi onun aklında
dizi.aktar(dizi1[i],dizi2[i])
gibi bir metod uyanıyor. arkasından bu metodun varlığının olmadığını görünce şaşırıyor.
L
C++ öğrenimi konusunda seve seve ama ödev ve bu gibi şeylerin direkt olarak istenmesine karşı olduğumu belirten alaycı üslupla;
#include <iostream>
int main()
{
{
using namespace std;
unsigned short n, k;
cout << "N tane de gecen n'i girin:"; cin >> n;
cout << "K tane diye gecen k'yi giriniz:"; cin >> k;
bool *masaetrafindakicikarilmayibekleyengereksizherifler = new bool[n];
for( unsigned short gereksizkisisayaci = 0; gereksizkisisayaci < n; gereksizkisisayaci++ )
{
masaetrafindakicikarilmayibekleyengereksizherifler[ gereksizkisisayaci ] = true;
}
for( unsigned int sayac = 0, nnn = n-1, kkk = k; nnn > 0; sayac = ++sayac % n )
{
if( masaetrafindakicikarilmayibekleyengereksizherifler[ sayac ] && --kkk == 0 )
{
masaetrafindakicikarilmayibekleyengereksizherifler[ sayac ] = false;
kkk = k;
--nnn;
}
}
cout << "---------------------------------#" << endl;
for( unsigned short sayac = 0; sayac < n; sayac++ )
cout << masaetrafindakicikarilmayibekleyengereksizherifler[ sayac ] << endl;
cout << "---------------------------------#" << endl;
}
return 0;
}
Cevabını yaz
Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.