Şimdi Ara

2D Array (ödevi bitiremedim, yardım) (2. sayfa)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
55
Cevap
0
Favori
1.310
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: önceki 123
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • bu sabah uyandım biraz daha uğraşıyım dedimm..
    o ip kısmını yapamıyorum yine.. %s ile almaya çalışıyorum program hata verip kilitleniyor..

    printf("Enter IP and duration: "); /* burda ip adresini 123.123.123.111 şeklinde alamıyorum.. */
    scanf("%s%d",&ip,&d);
    printf("%s added to the list.\n",ip);
  • fonksiyonlar hariç aşağıdaki gibi bir kod yazdım.. while içine menüyü ve hangi rakamı seçerse ne olacağını koydum.. ama daha 1. seçenekte takıldım :) o ip adresini 111.222.33.44 şeklinde girdiremiyorum bir türlü.. char ile %s denedim, %d, %c denedim hiçbiri olmadı..

    quote:

    #include <stdio.h>
    int max(int,int);
    int listip(int,int,int);
    int main(void)
    {
    int ip,d;
    int choice;

    while (choice!=5)
    {
    printf("1. Input an IP number \n");
    printf("2. Find the max duration \n");
    printf("3. Find the duration of given IP \n");
    printf("4. List IPs \n");
    printf("5. Quit \n");
    printf("--------------------------------\n");
    printf("Enter your choice: ");
    scanf("%d",&choice);
    if (choice==1)
    {
    printf("Enter IP and duration: "); /* burda ip adresini 123.123.123.111 şeklinde alamıyorum.. */
    scanf("%d%d",&ip,&d);
    printf("%d added to the list.\n",ip);
    }
    else if (choice==2)
    {
    printf("Max is ... \n");
    }
    else if (choice==3)
    {
    printf("denemee \n");
    }
    else if (choice==4)
    {
    printf("bu da denemee \n");
    }
    }
    return 0;
    }




  • #include <stdio.h>
    int max(int,int);
    int listip(int,int,int);
    int main(void)
    {
    char ip[16];
    int d;
    int choice;

    while (choice!=5)
    {
    printf("1. Input an IP number \n");
    printf("2. Find the max duration \n");
    printf("3. Find the duration of given IP \n");
    printf("4. List IPs \n");
    printf("5. Quit \n");
    printf("--------------------------------\n");
    printf("Enter your choice: ");
    scanf("%d",&choice);
    if (choice==1)
    {
    printf("Enter IP and duration: "); /* burda ip adresini 123.123.123.111 şeklinde alamıyorum.. */
    scanf("%s %d",&ip,&d);
    printf("%s added to the list.\n",ip);
    }
    else if (choice==2)
    {
    printf("Max is ... \n");
    }
    else if (choice==3)
    {
    printf("denemee \n");
    }
    else if (choice==4)
    {
    printf("bu da denemee \n");
    }
    }
    return 0;
    }




  • ip leri böyle alabiliyoruz, peki bu fonksiyonlardaki arraylere nasıl gönderip sonra diğer seçenklerden çağıracağız o ip ve zamanları?
  • Bir stringi scanf ile almak istersen

    scanf("%s",ip); şeklinde alman lazım. Çünkü stringlerde sabit birer pointerdır.O yüzden "address of" operatörüne (&) gerek yok.

    Alternatif olarak gets(ip); de kullanabilirsin..
  • benim o scanf de ip yi ip1,ip2,ip3... diye almam lazım. bunu arrayle alıp fonksiyona nasıl göndercem.. mesela normal bir array için;
    for (i=0; i<5; i++)
    {
    scanf("%d",&num[ i ]);
    }

    dediğimizde num[0] num[1]...num[4] şeklinde kendi kaydediyor girilen rakam kadar.. ben hem girilen ip leri böyle kayda almam lazım hemde her ip için de bir zaman kaydı almam lazım.. aynı anda 2 array almam lazım.. bu kodları fonksiyona nasıl gönderip çağıracağız? mesela kullanıcı en uzun süreyi istediğinde o süreyi ve ona ait ip adresini yazdırmamız lazım..
    yani anlıycağınız baya bir takıldım bu ödevde..



    < Bu mesaj bu kişi tarafından değiştirildi MithRyLL -- 27 Nisan 2008; 19:51:46 >
  • şöyle bir şey geldi aklıma: 2 boyutlu ve sütun sayisi 5 olan integer tipte bir dizi tanımlarsın.

    dizi[ip sayisi][5];


    Boylece dizinin bir satirinda ip nin 4 octet ini saklarsın son sütunda ise süreyi yazabilirsin.Örnek:

    dizi[x][5]={ 
    {192,168,1,2,35},
    {192,168,1,3,10},
    vs gibi...
    };



    kullanıcıdan ip alırkende böyle:

    for(i=0;i<ipsayısı;i++) 
    {
    printf("IP girin: ");
    scanf("%d.%d.%d.%d",&dizi[i][0],&dizi[i][1],&dizi[i][2],&dizi[i][3]);
    printf("Sureyi girin: ");
    scanf("%d",&dizi[i][4]);
    }



    < Bu mesaj bu kişi tarafından değiştirildi Executioner -- 27 Nisan 2008; 20:20:03 >
  • ödevde ikisini aynı satırda almamı istiyor...

    printf("IP ve zamanı girin: ");
    scanf("%d.%d.%d.%d %d",&dizi[ i][0],&dizi[ i][1],&dizi[ i][2],&dizi[i ][3],&dizi[ i][4]);

    yapsam olurmu?
  • Olur
  • Şu ödevi tam haliyle bir yapabilir misniz? Ben tamamen karıştırdım herşeyi, pekte bilgim yok daha yeni öğreniyorum.. ilk mesajda yazan programın tam halini yaparsanız çok sevinirim..
  • şöyle bir yapı doğru mu? bu şekilde while içinde olur mu program?

    #include <stdio.h>
    int max(int,int);
    int listip(int,int,int);
    int main(void)
    {
    int ip[100];
    int choice,d[100];
    int i;

    while (choice!=5)
    {
    printf("1. Input an IP number \n");
    printf("2. Find the max duration \n");
    printf("3. Find the duration of given IP \n");
    printf("4. List IPs \n");
    printf("5. Quit \n");
    printf("--------------------------------\n");
    printf("Enter your choice: ");
    scanf("%d",&choice);
    if (choice==1)
    {
    printf("Enter IP and duration: ");
    for (i=0; i<3; i++)
    scanf("%d%d",&ip[ i ],&d[ i ]);
    printf("%d added to the list.\n",ip);
    }
    else if (choice==2)
    {
    printf("Max is ... \n");
    }
    else if (choice==3)
    {
    printf("denemee \n");
    }
    else if (choice==4)
    {
    printf("bu da denemee \n");
    }
    }
    return 0;
    }




  • quote:

    Orjinalden alıntı: MithRyLL

    Şu ödevi tam haliyle bir yapabilir misniz? Ben tamamen karıştırdım herşeyi, pekte bilgim yok daha yeni öğreniyorum.. ilk mesajda yazan programın tam halini yaparsanız çok sevinirim..


    compe112
  • evet :D:D
  • ödevi yapabildinmi?
  • Hayır.. yapamadım... öyle kaldı...
  • hadi az yardım edeyim sadece tüyo verecem
    yukardakilerin hiç biri 2d array değil
    2 boyutlu array dediğin
    int x[100][100]; şeklinde olur
    +
    bu ödevde
    String array kullanmalısın. neden diyecek olursan ip adresleri integer bir değer değil string.
    yani
    string bilgi_ip[x][y]; şeklinde olcak
    eee bilgilerde zaten belli
    ip adresi ve süresi
    kafadan 100 ip girecekmiş gibi yaparsın
    yani
    string bilgi_ip[100][2];
    bilgi_ip[x][0]="x_inci_ip_adresi";
    bilgi_ip[x][1]="x_inci_ip_süresi";
    max süre içinde string to int yapmalısın



    < Bu mesaj bu kişi tarafından değiştirildi Whoppix -- 7 Mayıs 2008; 0:18:13 >
  • quote:

    Orjinalden alıntı: sehlor

    ip i String ile al yani elinde "127.0.0.1" gibi bi string olsun
    scanf ile al $oyle olsun :

    char ip[5];

    scanf("%d",&ip[i ]);

    string diyorsun
    char tanımlıyorsun
    int okuyorsun
    sen ne yapıyorsun ?
  • quote:

    Orjinalden alıntı: Whoppix


    quote:

    Orjinalden alıntı: sehlor

    ip i String ile al yani elinde "127.0.0.1" gibi bi string olsun
    scanf ile al $oyle olsun :

    char ip[5];

    scanf("%d",&ip[i ]);

    string diyorsun
    char tanımlıyorsun
    int okuyorsun
    sen ne yapıyorsun ?



    C hakkinda herhangi bi syntax bilgisine sahip degilim...
    Haklisin Aslinda Baya Sacmalami$im biraz baktimda



    < Bu mesaj bu kişi tarafından değiştirildi sehlor -- 7 Mayıs 2008; 0:51:42 >




  • işte olmuyor...

    printf("Enter IP and duration: ");
    scanf("%s",ip);

    diye okutabiliyoruz ama ip leri ve onlara ait zamanları kayıt etmemiz lazım.. scanf üstüne for (i=0; i<100; i++) koyunca tamam 100 tane ip kaydedebiliyoruz ama kullanıcı 1 e basınca bir kere sorup bir kere kayıt etmeli ama o kayıt içinde for altındaymış gibi bir numara vermeli.. şu 1. ip ve zaman kısmını tam şekilde yazarsanız sevinirim
  • bu arada while yerine do-while kullan

    do
    {
    ....
    ....
    ...
    ....
    5. Quit
    }
    while(choice!=5);
    gibi



    < Bu mesaj bu kişi tarafından değiştirildi Lady-G -- 7 Mayıs 2008; 23:00:46 >
  • 
Sayfa: önceki 123
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.