[Çözüldü] Sayı girişi

Başlatan travego0403, 09 Şubat 2011 - 13:04:35

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

travego0403

Arkadaşlar sorum şu:  Önce kaç veri gireceğimizi yazacağız sonra hemen yanına verilerin değerlerini gireceğiz ve enter'a bastıktan sonra veriler işlenecek. Örnek olarak,
3 10 20 30

Yani 3 değer gireceğiz birinci değer 10, ikinci değer 20, üçüncü değer de 30 gibi.

Verilerin işlenmesinde sorunum yok sadece bu şekilde bir veri girişi nasıl yapılır onu soruyorum.
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

sem

C için mi soruyorsunuz C++ için mi?

C içinse şu şekilde düzenlemeler yapabilirsiniz;

Alıntı YapÖnce kaç veri gireceğimizi yazacağız sonra hemen yanına verilerin değerlerini gireceğiz

Bu nokta önemli değil önemli olan verilerin sıralı olarak kayıt edilmesi derseniz yani aşağıdaki çıktısını verdiğim program uygun ise kodu program çıktısının hemen aşağısında;
Alıntı Yapsem0900@debian:~/Desktop$ ./program
Toplam Kaç Sayı Girileceğini Yazın:5
1. Sayı:1
2. Sayı:2
3. Sayı:3
4. Sayı:4
5. Sayı:5
Girilen 1. Sayı: 1
Girilen 2. Sayı: 2
Girilen 3. Sayı: 3
Girilen 4. Sayı: 4
Girilen 5. Sayı: 5

#include <stdio.h>

int main()
{
    int a, i;
    fprintf(stdout, "Toplam Kaç Sayı Girileceğini Yazın:");
    fscanf(stdin, "%d", &a);
    int dizi[a];

    for(i = 0; i < a; ++i){
       fprintf(stdout, "%d. Sayı:", i+1);
       fscanf(stdin, "%d", &dizi[i]);
    }

   for(i = 0; i < a; ++i)
      fprintf(stdout, "Girilen %d. Sayı: %d\n", i+1, dizi[i]);

   return 0;
}



Ama hemen yanına yazılması asıl nokta ise yine program çıktısı ve kodları ardışıl olarak paylaşıyorum;
Alıntı Yapsem0900@debian:~/Desktop$ ./program2
3 4 5 6
1 -) 4
2 -) 5
3 -) 6
#include <stdio.h>
#include <malloc.h>


int main()
{
   char *s;
   int dizi_boyutu, i;

   s = (char *)calloc(500, sizeof(char));

   fscanf(stdin, "%d", &dizi_boyutu);
   fgets(s, 500, stdin);

   int dizi[dizi_boyutu];

   ++s;
   for(i = 0; i < dizi_boyutu; ++i){
      sscanf(s, "%d", &dizi[i]);
      fprintf(stdout, "%d -) %d\n", i+1, dizi[i]);
      s += 2;
   }
}



Bu kodda dikkat edilmesi gereken nokta her sayı arasında bir boşluk bırakılmasıdır. Tabii bu şart değil; gerektiği takdirde boşluk araması yapılarak program istenildiği kadar boşluğa göre ayarlanabilir... Benim aklıma bu geldi, belki daha güzel bir kod ya da daha yaratıcı bir algoritma paylaşan arkadaşlar olabilir...

Kafanıza takılan olursa bildiğim kadarı ile açıklamaya çalışırım...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

travego0403

C++ için soruyordum. 2. yazdığınız programdaki kodları C++ için uyarlayabilirim. İlginiz için teşekkürler. :)
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

sem

Umarım yardımı olmuştur, kolay gelsin...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

travego0403

Evet bir fikir verdi. Şu an istediğimi yaptım. Teşekkürler.  :)
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

sem

Başlığı [Çözüldü] olarak etiketlerseniz yönetici arkadaşlar daha rahat fark edip konuyu kilitleyebilirler... İyi çalışmalar...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?