freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Προβλημα με arrays στη C


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [3 Μηνύματα]      Bookmarks Tags: arrays Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
Filby


Μέλος από: 28 Μαρ 2010
Μηνύματα: 6

View users profile
ΜήνυμαΣτις: 28 Μαρ 2010 10:47    Θέμα: Προβλημα με arrays στη C Απάντηση με παράθεση  Mark this post and the followings unread

Kαλησπερα παιδια,
εχω ενα προβλημα με την υλοποιηση ενος προγραμματος σε γλωσσα C.Το προγραμμα πραγματευεται τον πινακα Vigenere χρησιμοποιωντας αντι για χαρακτηρες τους αριθμους 0-9.
(http://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher , για περισσοτερες πληροφοριες).
Το θεμα μου ειναι οτι ο χρηστης πρεπει να εισαγει ενα κλειδι και μια ακολουθια αριθμων για
κρυπτο-αποκρυπτογραφηση. Το μεγεθος της ακολουθιας δεν ειναι γνωστο και αφου η C δεν επιτρεπει πινακες με μεταβλητες υπαρχει καποιος τροπος να το κανω εκτος απο το να ορισω ενα μεγιστο μεγεθος?? Εσωκλειω μερος του προγραμματος οπως το εκανα πριν μαθω οτι δεν επιτρεπονται πινακες με μεταβλητο μεγεθος!


κώδικας:
void number_insert (int number[digits], int digits) {
     printf("Please enter the digits of the number sequence\n");
     scanf("%d",&digits);
     printf("Please enter a number sequence\n");
     scanf("%d",&number[digits]) ;
     }

void key_insert (int key[kdigits], int kdigits) {
     printf("Please enter the number of the digits of the key sequence\n");
     scanf("%d",&kdigits);
     printf("Please enter a key sequence\n");
     scanf("%d",&key[kdigits]);
     }
virxen75


Μέλος από: 18 Φεβ 2009
Μηνύματα: 256+
Περιοχή: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
View users profile
ΜήνυμαΣτις: 28 Μαρ 2010 14:36    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

το πρόβλημα που αναφέρεις λύνεται πολύ απλά με την χρήση δεικτών.
είναι αυτό που λέμε δυναμικοί πίνακες.

σου έφτιαξα ένα μικρό παράδειγμα για να δεις τον τρόπο χρήσης του.
δες το και προσάρμοσε το στον κώδικα σου.

όπου κολλήσεις στείλε ξανά τον διορθωμένο κώδικα και τις ερωτήσεις-απορίες σου.

κώδικας:

#include <stdio.h>
#include <stdlib.h>

int * fillArray(int);
void printArray(int *,int);


int * fillArray(int digits){//δημιουργεί ένα δυναμικό πίνακα θέσεων digits-->  int A[digits]
    int *A=NULL;
    int i=0;
    for (i=0;i<digits;i++){
        A=(int *) realloc(A,(i+1)*sizeof(int));
        A[i]=i*i;//εδώ απλά βάζω ως περιεχόμενα το τετράγωνο της θέσης του στοιχείου στον πίνακα.Εσύ βάζεις ότι θες ή 0 απλά να τον δημιουρήσεις και να τον γεμίσει άλλη συνάρτηση
    }
    return A;
}
void printArray(int *Array,int size){//τυπώνω τα δεδομένα του δυναμικού πίνακα στην οθόνη
    int i=0;
    for (i=0;i<size;i++){
        printf("\nA[%d]=%d",i,Array[i]);
    }
}

int main(){
    int *A;
    int size=5;
    A=fillArray(size);//δημιουργώ έναν δυναμικό πίνακα θέσεων size
    printArray(A,size);//τυπώνω τα δεδομένα του δυναμικού πίνακα στην οθόνη
    A[0]=100;//αλλάζω τιμή στην θέση 0,βάζοντας την τιμή 100
    printf("\n----------------");
    printArray(A,size);//τυπώνω τα δεδομένα του δυναμικού πίνακα στην οθόνη
    getchar();
return 0;
}
Filby


Μέλος από: 28 Μαρ 2010
Μηνύματα: 6

View users profile
ΜήνυμαΣτις: 28 Μαρ 2010 14:41    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

ευχαριστω πολύ για την αμεση απαντηση σου !! θα το κοιταξω τωρα και αμα συναντησω αλλο προβλημα θα το ποσταρω εδω!
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [3 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Τώρα είναι 10 Δεκ 2016 08:51 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos