İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Sinema Dizi Akıllı Ev Motosiklet Mikromobilite Kripto Para Sağlık Teknolojileri Son dakika Yazarlar
  1. Ana sayfa
  2. SDN Forum
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C de ödevde yardım edebilecek var mı?

Konu bilgisi

11cevap
1.377görüntüleme
12.2016açıldı
31.12.2016son cevap

#1
10 elemanlı tamsayı değer içeren dizinin elemanları klavyeden kullanıcı tarafından girilecektir. Girilen bilgilerin bir değerlendirilmesi yapılacaktır. Yani girilen bilgilerde, birden fazla olan değerin kaçar adet olduğu sonuç olarak ekrana yazdıracak olan uygulamanın kodlarını C dilinde yazınız. Örnek olarak girilen değerler: 1 4 6 7 1 2 4 2 –8 2
Sonuç: 1 --2 adet
4 --2 adet
2 --3 adet

algoritmayı tam olarak yazamadım kafam çok karıştı bunu tam anlayıp kodlarını yazabilecek var mı?
Cevaplar
#2
Bir döngü kur ilk değerden başlayıp tüm değerlerde dönsün. Bu döngü içerisinde her değer için seçtiğin değer dışındaki tüm değerlerin içerisinde var mı yok mu kontrol etsin. Bu algoritma performans açısından çok farklı yöntemlerle daha kolay hesaplanabilir diye düşünüyorum.
melihsinik Konuyu açan
#3
denedim de tam kuramadım
--- Gönderi Güncellendi ---
arsenik dedi: ↑
Bir döngü kur ilk değerden başlayıp tüm değerlerde dönsün. Bu döngü içerisinde her değer için seçtiğin değer dışındaki tüm değerlerin içerisinde var mı yok mu kontrol etsin. Bu algoritma performans açısından çok farklı yöntemlerle daha kolay hesaplanabilir diye düşünüyorum.
denedim de tam kuramadım
melihsinik Konuyu açan
#4
#include<stdio.h>

main()
{

int sayilar[10];
int i,j,sayiadedi,oncedenyazildi=0;

for(i=0; i<10; i++)
{
printf("%d. elemani giriniz: ",i+1);
scanf("%d",&sayilar);

sayiadedi=1;
}
for(i=0; i<10; i++)
{
for(j=0;j<10; j++)
{
if(sayilar==sayilar[j])
{
sayiadedi++;
}
}

if(sayiadedi>1)
{
oncedenyazildi=1;
}
if(oncedenyazildi==0)
{
printf("%d sayisindan %d tane var.\n",sayilar,sayiadedi);
}
sayiadedi=0;
}
return 0;
}

yazdığım kodlar bu
#5

#include <stdio.h>

  main() {

    int sayilar[10];
    int i, j, sayiadedi, oncedenyazildi = 0;

    for (i = 0; i < 10; i++) {
      printf("%d. elemani giriniz: ", i + 1);
      scanf("%d", &sayilar[i]);

      sayiadedi = 1;
    }
    for (i = 0; i < 10; i++) {
      for (j = 1; j < 10; j++) {
        if (sayilar[i] == sayilar[j]) {
          sayiadedi++;
        }
      }

      if (sayiadedi > 1) {
        oncedenyazildi = 1;
      }
      if (oncedenyazildi == 0) {
        printf("%d sayisindan %d tane var.\n", sayilar[i], sayiadedi);
      }
      sayiadedi = 0;
    }
    return 0;
  }


sayilar değişkenini dizi tanımlamışsınız ama hep sayilar diye kullanmışsınız.

sayilar[i]


diyerek direk o indeksteki sayıya ulaşmalısınız. Ayrıca içerideki for i den başlasın ben içeriye 1 den başlasın dedim ama o olmaz. i. değer hangisi ise onu almayacaksın çünkü zaten sayiadedini 1 den başlatmışsın.

Bu şekilde bir deneyin breakpoint koyun öyle takip edin.

Bakalım nerede bir hata var. Ben sadece yapıyı kontrol ettim. Debug yaparak incelemedim.
melihsinik Konuyu açan
#6
ödevde dizi
arsenik dedi: ↑

#include <stdio.h>

  main() {

    int sayilar[10];
    int i, j, sayiadedi, oncedenyazildi = 0;

    for (i = 0; i < 10; i++) {
      printf("%d. elemani giriniz: ", i + 1);
      scanf("%d", &sayilar[i]);

      sayiadedi = 1;
    }
    for (i = 0; i < 10; i++) {
      for (j = 1; j < 10; j++) {
        if (sayilar[i] == sayilar[j]) {
          sayiadedi++;
        }
      }

      if (sayiadedi > 1) {
        oncedenyazildi = 1;
      }
      if (oncedenyazildi == 0) {
        printf("%d sayisindan %d tane var.\n", sayilar[i], sayiadedi);
      }
      sayiadedi = 0;
    }
    return 0;
  }


sayilar değişkenini dizi tanımlamışsınız ama hep sayilar diye kullanmışsınız. sayilar diyerek direk o indeksteki sayıya ulaşmalısınız. Ayrıca

Bu şekilde bir deneyin breakpoint koyun öyle takip edin.

Bakalım nerede bir hata var. Ben sadece yapıyı kontrol ettim. Debug yaparak incelemedim.
ödevde dizi diyor daha ilk sene bölümde yeni öğreniyorum bu şekilde yaptım fakat yazmıyor sonucu direkt return 0 ile bitiyor. anlamadım
#7
Breakpoint koyun o şekilde takip edin.

Dizi elemanlarına
sayilar[i]


ile ulaşmalısınız.

int sayilar[2]={11,22};
sayilar[1] = 22 çıktısı verir.
melihsinik Konuyu açan
#8
b
arsenik dedi: ↑
Breakpoint koyun o şekilde takip edin.

Dizi elemanlarına
sayilar[i]


ile ulaşmalısınız.

int sayilar[2]={11,22};
sayilar[1] = 22 çıktısı verir.
breakpoint i bilmiyorum c de break yok mu bu kod da break a gerek var mı?
#9
Hocanıza sorun. Size breakpoint öğretsin ki hangi değişkende hangi veri mevcut görebilesiniz.
melihsinik Konuyu açan
#10
sizin anlatmak istediğinizle benim dediğim aynı şey değil mi bende i ile dizinin içine gidemiyor muyum yukarıdaki dediğiniz kodu anladım ama isim olarak breakpoint dediğinizi anlamadım
#11
Selamlar,

Sorunun çözüldü mü ?
melihsinik Konuyu açan
#12
evet teşekkürler

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.

Reklam