C/C++ Reverse Array Elements from K to N C++ nasıl yapılır?

bellek kullanımı hakkında bir kısıtlamanız yoksa şu şekilde çözebilirsiniz

C:
int reversedPart[C-K];
int index = 0;
for(int i = K; i < C; i++) {
    reversedPart[index] = fullArray[i];
    index++;
}

index = C - K - 1;
for(int i = K; i < C; i++) {
    fullArray[i] = reversedPart[index];
    index--;
}

Indexlerde +1 -1 hata payı olabilir onları kontrol edersiniz ama yaptığımız iş şu şekilde.

Dizinin K ve C arasındaki elementlerini yeni bir dizide tuttuk. Ardından dizimizin K-C arasındaki indexlerinde gezerek K-C arasındaki indexleri yeni elementlerle değiştirdik. Ancak bunu tersten yaptık çünkü K-C arasındaki elementlerin yerlerini değiştirdik. Tabi bunu yeni bir array oluşturmadan da yapabilirsiniz. Sadece döngüyü biraz daha karmaşık hale getirmek gerek.


C:
    int temp;
    for(int i = K, j = C - 1; i < j; i++, j--) {
        temp = fullArray[i];
        fullArray[i] = fullArray[j];
        fullArray[j] = temp;
    }
 
Yapman gerekeni aşağıda belirttim.

Buraya yazana kadar google'a yazsan zaten bulursun, bkz:
www.google.com
Ortada bir tane arama barı var oraya da "Reverse Array Elements from K to N" yazıyorsun;

Artık bir zahmet açıp, okuyup, yaparsın herhalde.

 
Yapman gerekeni aşağıda belirttim.

Buraya yazana kadar google'a yazsan zaten bulursun, bkz:
www.google.com
Ortada bir tane arama barı var oraya da "Reverse Array Elements from K to N" yazıyorsun;

Artık bir zahmet açıp, okuyup, yaparsın herhalde.

Fonsk
Yapman gerekeni aşağıda belirttim.

Buraya yazana kadar google'a yazsan zaten bulursun, bkz:
www.google.com
Ortada bir tane arama barı var oraya da "Reverse Array Elements from K to N" yazıyorsun;

Artık bir zahmet açıp, okuyup, yaparsın herhalde.

Hocam üzgünüm ama kodda fonksiyon kullanılmış.

bellek kullanımı hakkında bir kısıtlamanız yoksa şu şekilde çözebilirsiniz

C:
int reversedPart[C-K];
int index = 0;
for(int i = K; i < C; i++) {
    reversedPart[index] = fullArray[i];
    index++;
}

index = C - K - 1;
for(int i = K; i < C; i++) {
    fullArray[i] = reversedPart[index];
    index--;
}

Indexlerde +1 -1 hata payı olabilir onları kontrol edersiniz ama yaptığımız iş şu şekilde.

Dizinin K ve C arasındaki elementlerini yeni bir dizide tuttuk. Ardından dizimizin K-C arasındaki indexlerinde gezerek K-C arasındaki indexleri yeni elementlerle değiştirdik. Ancak bunu tersten yaptık çünkü K-C arasındaki elementlerin yerlerini değiştirdik. Tabi bunu yeni bir array oluşturmadan da yapabilirsiniz. Sadece döngüyü biraz daha karmaşık hale getirmek gerek.


C:
    int temp;
    for(int i = K, j = C - 1; i < j; i++, j--) {
        temp = fullArray[i];
        fullArray[i] = fullArray[j];
        fullArray[j] = temp;
    }
Hocam böyle bir kod yazdım ama yine çalışmıyor :
Kod:
int main() {
    int n ;
    cin >> n;
    int array[n];
    for (int f = 0; f < n; ++f) {
        cin >> array[f];
    }
    int k;
    cin >> k;
    for (int f = k ; f <= n / 2; ++f) {
        int s = array[f];
        array[f] = array[n - f - 1];
        array[n - f - 1] = s;
    }
    for (int f = 0; f < n; ++f) {
        cout << array[f] << " ";
    }
    cout << endl;
}
 
Son düzenleme:
Çalışmaz, çünkü bu şekilde dizi tanımlayamazsınız. Dizi boyutu ifadesinin bir sabit ifadesi olması gerekiyor, bir diğer açtığınız konuda da aynı şekilde dizi tanımlamışsınız, arkadaşlar detaylı açıklama yapmışlar zaten.
 
Çalışmaz, çünkü bu şekilde dizi tanımlayamazsınız. Dizi boyutu ifadesinin bir sabit ifadesi olması gerekiyor, bir diğer açtığınız konuda da aynı şekilde dizi tanımlamışsınız, arkadaşlar detaylı açıklama yapmışlar zaten.
Dediğim gibi testcaselere göre yazıyorum kodu.
 
Testcaselere göre kod yazmak nedir ? Hangi testcaseler bunlar ? Bir konu açmışsınız, insanlar burada size yardım etmeye çalışıyor ancak detay yok, ne yapmak istediğiniz belli değil, hangi ortamda ne için kod yazıyorsunuz belli değil. "Yapmam gerekeni başlıkta belirttim" derseniz, insanlar da başlıktaki kadarıyla size yardımcı olur. Kimseye ne yapmak istediğiniz vahiy ile gelmez. Ayrıca yardım mı istiyorsunuz yoksa birileri hazır kodu yazsa da alsam mı diyorsunuz orasını da anlayamadım. Sizin kodu neye göre yazdığınız diye bir şey yok, dilin kuralı belli bu kurallara göre yazdığınız kodun çalışması mümkün değil, çünkü yanlış.

Attığım linkte C için zaten hazır kod örneği var, kodu fonksiyon içinden alıp main'e yapıştırmanız probleminizi zaten çözecek. Yazdığınız kodda sabit bir dizi boyutu vermeniz zaten yeterli olacak muhtemelen.
 
Testcaselere göre kod yazmak nedir ? Hangi testcaseler bunlar ? Bir konu açmışsınız, insanlar burada size yardım etmeye çalışıyor ancak detay yok, ne yapmak istediğiniz belli değil, hangi ortamda ne için kod yazıyorsunuz belli değil. "Yapmam gerekeni başlıkta belirttim" derseniz, insanlar da başlıktaki kadarıyla size yardımcı olur. Kimseye ne yapmak istediğiniz vahiy ile gelmez. Ayrıca yardım mı istiyorsunuz yoksa birileri hazır kodu yazsa da alsam mı diyorsunuz orasını da anlayamadım. Sizin kodu neye göre yazdığınız diye bir şey yok, dilin kuralı belli bu kurallara göre yazdığınız kodun çalışması mümkün değil, çünkü yanlış.

Attığım linkte C için zaten hazır kod örneği var, kodu fonksiyon içinden alıp main'e yapıştırmanız probleminizi zaten çözecek. Yazdığınız kodda sabit bir dizi boyutu vermeniz zaten yeterli olacak muhtemelen.
Given an array of N elements and an integer K (1 <= K <= N), reverse the elements of the array from index K to index N.The first line contains an integer N, representing the size of the array. The second line contains N space-separated integers representing the elements of the array. The third line contains an integer K.
Sample Input 1
8
10 20 30 40 50 60 70 80
5

Sample Output 1
10 20 30 40 80 70 60 50
 

Technopat Haberler

Yeni konular

Geri
Yukarı