Şimdi Ara

C programlamadan anlayan arkadaşlar bakabilir mi?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
7
Cevap
1
Favori
522
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Yardımcı olabilecek arkadaşlara uğraşıp bir türlü yapamadığım 3 tane sorum olacaktı :

    1)Dışarıdan girilen bir mesajın içinde belirtilen harften kaç tane olduğunu ve yerlerini bulup yazdıran ve kullanıcı isterse bu harfi başka bir harfle değiştirebilme imkanı sunan programı yazınız.

    2)Dışarıdan girilen N elemanlı bir dizinin elemanlarını öyle ikiye bölünüz ki elde ettiğiniz yeni 2 dizideki elemanların toplamları birbirine eşit(/en yakın) olsun.

    3)Noktalı girilen bir sayıyı normal olarak yazan programı yazınız.(Örnek : 18.73 sayısını 1873 olarak yazacak.)


    Teşekkürler...



  • Uğraşıp nerelere kadar gelebildin? Takıldığın yeri at istersen yada özel mesaj atarsın :)
  • 1)
     
    #include<stdio.h>

    int main()
    {
    char mesaj[100], harf;
    printf("Mesaji giriniz (en fazla 100 karakter): ");
    gets(mesaj);

    printf("Harfi giriniz: ");
    scanf("%s", &harf);

    int sayac=0;
    for(int i=0; i<100; i++)
    {
    if(mesaj[i]==harf)
    {
    sayac++;
    printf("%d.sirada\n", i+1);
    }
    }
    printf("TOPLAM %d tane %c harfi var.\n\n", sayac, harf);

    char cevap, yeniHarf;
    printf("Harfi degistirmek ister misiniz? (e/h): ");
    scanf(" %c", &cevap);

    if(cevap=='e')
    {
    printf("Yeni harfi giriniz: ");
    scanf(" %c", &yeniHarf);
    for(int i=0; i<100; i++)
    {
    if(mesaj[i]==harf)
    {
    mesaj[i]=yeniHarf;
    }
    }
    printf("%s", mesaj);
    }


    return 0;
    }




  • 3)
     
    #include<stdio.h>
    #include<math.h>

    int main()
    {
    double sayi;

    printf("ondalikli sayi giriniz: ");
    scanf("%lf", &sayi);

    while(sayi!=((int)sayi))
    {
    sayi=sayi*10;
    }
    printf("%d", (int)sayi);

    return 0;
    }
  • 2) Bir diziyi dengeli bölmenin oldukça zor olduğunu, bunun için çeşitli zor algoritmaların kullanıldığını gördüm. C ile değil de C++ ile hazır bir kod buldum. Belki bir arkadaş C'ye başarabilirse dönüştürür. Zira iş bana karışık geldi.

     
    #include<bits/stdc++.h>
    using namespace std;

    bool ison(int i, int x)
    {
    if ((i >> x) & 1)
    return true;
    return false;
    }

    int main() {
    cout<<"enter the number of elements : ";
    int n;
    cin >> n;
    int a[n];
    for (int i = 0; i < n; i++)
    cin >> a[i];
    int sumarr1[(1 << n) - 1];
    int sumarr2[(1 << n) - 1];

    memset(sumarr1, 0, sizeof(sumarr1));
    memset(sumarr2, 0, sizeof(sumarr2));

    int index = 0;

    vector<int>v1[(1 << n) - 1];
    vector<int>v2[(1 << n) - 1];

    for (int i = 1; i < (1 << n); i++)
    {
    for (int j = 0; j < n; j++)
    {
    if (ison(i, j))
    {
    sumarr1[index] += a[j];
    v1[index].push_back(a[j]);
    }
    else {
    sumarr2[index] += a[j];
    v2[index].push_back(a[j]);
    }
    }
    index++;
    }

    int ans = INT_MAX;
    int ii;

    for (int i = 0; i < index; i++)
    {
    if (abs(sumarr1[i] - sumarr2[i]) < ans)
    {
    ii = i;
    ans = abs(sumarr1[i] - sumarr2[i]);
    }
    }

    cout << "first partitioned array : ";
    for (int i = 0; i < v1[ii].size(); i++)
    {
    cout << v1[ii][i] << " ";
    }
    cout << endl;

    cout << "2nd partitioned array : ";
    for (int i = 0; i < v2[ii].size(); i++)
    {
    cout << v2[ii][i] << " ";
    }
    cout << endl;

    cout << "minimum difference is : " << ans << endl;
    }




  • Hocam 3. Soru için diziyi ortalardan bölüp sağ ve sol taraf diye ikiye mi ayıracaksınız? Eğer öyleyse dizinin bi başından bi de sonundan başlayıp toplaya toplaya ortaya doğru gelebilirsiniz

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Dizi ikiye bölünecek her bir dizinin toplamları eşit yada en yakın olacak.
    Ör: 10 9 3 7 3 dizisi ikiye bölündüğünde
    1.dizi: 10 + 3 + 3 = 16
    2.dizi: 9 + 7 = 16
    olacaktır.
    Sayılar farklı konumlarda da olabilir. Toplamları tam eşit de olmayabilir. O zaman en yakın olacak şekilde bölünecektir.

    Ortadan bölündüğünde toplamlar eşit olmaz.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.