Çözüldü Kodu 4 kere nasıl çalıştırırım?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

RSK06

Hectopat
Katılım
29 Aralık 2020
Mesajlar
2.286
Çözümler
4
Daha fazla  
Cinsiyet
Erkek
Ben bu şekilde yaptım fakat daha rahat bir yolu elbet vardır diye düşünüyorum, bilen varsa yazabilir mi ?
<<Write a C++ program to create a new string which is 4 copies of the 2 front characters of a given string. If the given string length is less than 2 return the original string>>
[CODE lang="cpp" title="Benim yaptığım"]string test(string s)
{
return s.length() > 2 ? s.substr(0, 2):s;
}
int main()
{
for (auto i = 1;i <= 4;i++) {
cout << test("Gangamstyle");
}
cout << endl;
}[/CODE]
 
Son düzenleyen: Moderatör:
Çözüm
Yukarıda tanımlı olan (#define N 4) N için. Sen derlerken N yazan yer yere CTRL + C, CTRL + V şeklinde 4 yazıyor.
Program içinde sayı kullanmak tavsiye edilen bir şey değil. Bunun yerine bu tip değişkenler/tanımlamalar kullanıp onu değiştirmek daha mantıklı.

Şöyle düşün. Bir array/dizi tanımladın. Ne olduğunu bilmiyorsan liste de diyebiliriz. Listenin boyutuna 5 dedin. Sonra bir döngü açıp bir işlem yaptın. Sonra başka bir döngü açıp başka bir işlem yaptın. Birkaç döngün oldu. Sonra boyutunu değiştirme ihtiyacı hissettin. Hem hepsini tek tek değiştirmek zorunda kalacaksın, hem de bir tane atlarsan hata alman çok muhtemel. Ve bu tip hatalar büyük programlarda kolay kolay tespit edilemiyor.

Kodları satıriçi değil, normal kod olarak paylaşın. >_ işareti yerine </> işaretini kullanın.

String'leri elle girmiş ve 4 kere tabiri caizse amelelik yapmış. Kişisel tercih. O tek satırlık return'ü görünce sövecek bir sürü kişi tanıyorum. Ben de dahil.
Ben olsam böyle yapardım. Bir şekilde döngü kullanman gerekecek.

Kod:
#include <iostream>
#include <string>
#define N 4

using namespace std;

string test(string s) {
    if (s.length() < 2) {
        return s;
    }

    string str;

    for (auto i{ 0 }; i < N; ++i) {
        str += s.at(0);
        str += s.at(1);
    }

    return str;
}

int main() {
    cout << test("merhaba");

    return 0;
}
 
Ben olsam böyle yapardım. Bir şekilde döngü kullanman gerekecek.

Kod:
#include <iostream>
#include <string>
#define N 4

using namespace std;

string test(string s) {
    if (s.length() < 2) {
        return s;
    }

    string str;

    for (auto i{ 0 }; i < N; ++i) {
        str += s.at(0);
        str += s.at(1);
    }

    return str;
}

int main() {
    cout << test("merhaba");

    return 0;
}
i < N nedir ?
Ben olsam böyle yapardım. Bir şekilde döngü kullanman gerekecek.

Kod:
#include <iostream>
#include <string>
#define N 4

using namespace std;

string test(string s) {
 if (s.length() < 2) {
 return s;
 }

 string str;

 for (auto i{ 0 }; i < N; ++i) {
 str += s.at(0);
 str += s.at(1);
 }

 return str;
}

int main() {
 cout << test("merhaba");

 return 0;
}

Anladım dediğinizi, çalıştığım site çözüm olarak bunu gösteriyor ama böyle bir sorum olsa sizin yönteminizle yaparım teşekkürler #include <iostream> using namespace std; string test(string str) { return str.length() < 2 ? str : str.substr(0, 2) + str.substr(0, 2) + str.substr(0, 2) + str.substr(0, 2); } int main() { cout << test("C Sharp") << endl; cout << test("JS") << endl; cout << test("a") << endl; return 0;
 
Yukarıda tanımlı olan (#define N 4) N için. Sen derlerken N yazan yer yere CTRL + C, CTRL + V şeklinde 4 yazıyor.
Program içinde sayı kullanmak tavsiye edilen bir şey değil. Bunun yerine bu tip değişkenler/tanımlamalar kullanıp onu değiştirmek daha mantıklı.

Şöyle düşün. Bir array/dizi tanımladın. Ne olduğunu bilmiyorsan liste de diyebiliriz. Listenin boyutuna 5 dedin. Sonra bir döngü açıp bir işlem yaptın. Sonra başka bir döngü açıp başka bir işlem yaptın. Birkaç döngün oldu. Sonra boyutunu değiştirme ihtiyacı hissettin. Hem hepsini tek tek değiştirmek zorunda kalacaksın, hem de bir tane atlarsan hata alman çok muhtemel. Ve bu tip hatalar büyük programlarda kolay kolay tespit edilemiyor.

Kodları satıriçi değil, normal kod olarak paylaşın. >_ işareti yerine </> işaretini kullanın.

String'leri elle girmiş ve 4 kere tabiri caizse amelelik yapmış. Kişisel tercih. O tek satırlık return'ü görünce sövecek bir sürü kişi tanıyorum. Ben de dahil.
 
Çözüm

Geri
Yukarı