A-L-I-V-E Posted February 29, 2012 #1 Share Posted February 29, 2012 Μου δινεται ενας πινακας π.χ.α 1 2 3 4 5β 6 7 8 9 10γ 11 12 13 14 15και πρεπει να δηλωσω τρεις ακεραιες μεταβλητες δομης test...struct test{ int α; int b; int c;};...και εναν πινακα με περιεχομενα δομων test και να καταχωρησω τα στοιχεια που φαινονται στον πρωτο πινακα κατα τη δηλωση.typedef test pinakas[…]…Το προβλημα ειναι οτι ειχα διαβασει πως γινεται αλλα δεν το θυμαμαι και δεν μπορω να το βρω. Μπορει να βοηθησει καποιος; Link to comment Share on other sites More sharing options...
nucleus Posted February 29, 2012 #2 Share Posted February 29, 2012 typedef struct {int a;int b;int c; } test;και για τον πίνακαstruct test pinakas[100] (πίνακας που περιέχει 100 structs τύπου test) Link to comment Share on other sites More sharing options...
A-L-I-V-E Posted February 29, 2012 Author #3 Share Posted February 29, 2012 Ωραια... και πως καταχωρω τα στοιχεια του πινακα (α,β,γ) τη στιγμη που δηλωνω τον πινακα;struct test pinakas[3]{?…?} Link to comment Share on other sites More sharing options...
nucleus Posted February 29, 2012 #4 Share Posted February 29, 2012 Για την δομή test που βρίσκεται στην πρώτη θέση του πίνακα pinakas[0].a = (τιμή για το πεδίο a) pinakas[0].b = (τιμή για το πεδίο pinakas[0].c = (τιμή για το πεδίο c) πρέπει να κάνεις το ίδιο για όλες τις δομές που περιέχει ο πίνακας.Δεν ξέρω αν θα δουλέψει και το παρακάτω pinakas[0] = {(τιμή για το πεδίο a),(τιμή για το πεδίο ,(τιμή για το πεδίο c)}; (έχω μόνο C# και VB εγκατεστημένα) Link to comment Share on other sites More sharing options...
A-L-I-V-E Posted February 29, 2012 Author #5 Share Posted February 29, 2012 Ευχαριστω πολυ φιλε μου. Θα το δοκιμασω και θα σου πω. Link to comment Share on other sites More sharing options...
Jaco Posted February 29, 2012 #6 Share Posted February 29, 2012 typedef struct {int a;int b;int c; } test;και για τον πίνακαstruct test pinakas[100] (πίνακας που περιέχει 100 structs τύπου test)Έχω την εντύπωση ότι δεν χρειάζεται το struct γιατί είναι defined με το typedef, οπότε ο compiler λογικά θα το δει σαν struct struct... Link to comment Share on other sites More sharing options...
A-L-I-V-E Posted February 29, 2012 Author #7 Share Posted February 29, 2012 Έχω την εντύπωση ότι δεν χρειάζεται το struct γιατί είναι defined με το typedef, οπότε ο compiler λογικά θα το δει σαν struct struct...Ναι οντως... δεν χρειαζεται. Μου χτυπαει ο compiler. Επισης δεν μπορω ακομα να καταχωρησω τις τιμες του πινακα α,β,γ στον pinakas ταυτοχρονα με τη δηλωση του χωρις σφαλμα... Link to comment Share on other sites More sharing options...
nucleus Posted February 29, 2012 #8 Share Posted February 29, 2012 ορισμός και αρχικοποίησηint α[5] = {1,2,3,4,5}int β[5] = {6,7,8,9,10}int γ[5] = {11,12,13,14,15}προσπέλασηα[0] = 1 α[1] = 2 α[2] =3 α[3]=4 α[4]=5ομοίως και για τους πίνακες β και γtypedef struct {int a;int b;int c;} test;και για τον πίνακαstruct test pinakas[5]pinakas[0].a = α[0]pinakas[0].b = β[0]pinakas[0].c = γ[0]pinakas[1].a = α[1]pinakas[1].b = β[1]pinakas[1].c = γ[1]pinakas[2].a = α[2]pinakas[2].b = β[2]pinakas[2].c = γ[2]pinakas[3].a = α[3]pinakas[3].b = β[3]pinakas[3].c = γ[3]pinakas[4].a = α[4]pinakas[4].b = β[4]pinakas[4].c = γ[4]Μπορείς να κάνεις τις αρχικοποιήσεις και την ανάθεση τιμών με for αλλά στο αφήνω σαν άσκηση Link to comment Share on other sites More sharing options...
A-L-I-V-E Posted February 29, 2012 Author #9 Share Posted February 29, 2012 ορισμός και αρχικοποίησηint α[5] = {1,2,3,4,5}int β[5] = {6,7,8,9,10}int γ[5] = {11,12,13,14,15}προσπέλασηα[0] = 1 α[1] = 2 α[2] =3 α[3]=4 α[4]=5ομοίως και για τους πίνακες β και γtypedef struct {int a;int b;int c;} test;και για τον πίνακαstruct test pinakas[5]pinakas[0].a = α[0]pinakas[0].b = β[0]pinakas[0].c = γ[0]pinakas[1].a = α[1]pinakas[1].b = β[1]pinakas[1].c = γ[1]pinakas[2].a = α[2]pinakas[2].b = β[2]pinakas[2].c = γ[2]pinakas[3].a = α[3]pinakas[3].b = β[3]pinakas[3].c = γ[3]pinakas[4].a = α[4]pinakas[4].b = β[4]pinakas[4].c = γ[4]Μπορείς να κάνεις τις αρχικοποιήσεις και την ανάθεση τιμών με for αλλά στο αφήνω σαν άσκησηΕίμαι στη δουλειά τώρα και δεν έχω καθαρό μυαλό... θα το κοιτάξω μόλις πάω στο σπίτι. Ευχαριστώ και πάλι... Link to comment Share on other sites More sharing options...
nucleus Posted February 29, 2012 #10 Share Posted February 29, 2012 Εύρηκαααα εύρηκααα!!!#include <stdio.h>typedef struct {int a;int b;int c;} test;int main(int argc, _TCHAR* argv[]){ int x[5] = {1,2,3,4,5}; int y[5] = {6,7,8,9,10}; int z[5] = {11,12,13,14,15}; test pinakas[5]; pinakas[0].a = x[0]; pinakas[0].b = y[0]; pinakas[0].c = z[0]; pinakas[1].a = x[1]; pinakas[1].b = y[1]; pinakas[1].c = z[1]; pinakas[2].a = x[2]; pinakas[2].b = y[2]; pinakas[2].c = z[2]; pinakas[3].a = x[3]; pinakas[3].b = y[3]; pinakas[3].c = z[3]; pinakas[4].a = x[4]; pinakas[4].b = y[4]; pinakas[4].c = z[4]; for(int i=0;i < 5;i++) { printf("struct sthn thesh %d:times a=%d,b=%d,c=%d",i,pinakas.a,pinakas.b,pinakas.c); } return 0;} Link to comment Share on other sites More sharing options...
A-L-I-V-E Posted February 29, 2012 Author #11 Share Posted February 29, 2012 Μάλλον ήθελες να πεις hoo-ray αντι για εύρηκα... Εγώ όμως μάλλον δεν ξέρω τι ήθελα να πω στη δουλειά οπότε πάμε πάλι από την αρχή γιατί το έχω διατυπώσει λάθος. :hang3: Έχω μια εργασία στην οποία συμπεριλαμβάνεται και ο πίνακας α,β,γ. Δεν μας λέει πουθενά μέχρι στιγμής να δημιουργήσουμε έναν πίνακα α,β,γ... ο πίνακας υπάρχει μόνο στο χαρτί για να χρησιμοποιήσω τις τιμές του. Για αρχή ζητείται να δηλώσουμε μια δομή με όνομα test με τα πεδία ακεραίων a, b & c και κατόπιν μια global μεταβλητή πίνακα (π.χ. pinakas) με δομές τύπου test στον οποίο θα καταχωρήσουμε τις τιμές του πίνακα α,β,γ που έχουμε στο χαρτί κατά τη δήλωση του pinakas. Ελπίζω να ήμουν λίγο πιο κατανοητός τώρα... Αυτό που έχω τονίσει είναι το σημείο που κολλάω... Link to comment Share on other sites More sharing options...
nucleus Posted February 29, 2012 #12 Share Posted February 29, 2012 typedef struct {int a;int b;int c;} test;test pinakas[5] = {[0].a = 1,[0].b = 2,[0].c = 3, κτλ}αυτό θες? Η πρώτη struct test στον pinakas περιέχει τις τιμές a=1,b=2,c=3 οι υπολοιπες είναι μηδέν Link to comment Share on other sites More sharing options...
A-L-I-V-E Posted February 29, 2012 Author #13 Share Posted February 29, 2012 typedef struct {int a; int b; int c; } test; test pinakas[5] = {[0].a = 1,[0].b = 2,[0].c = 3, κτλ} αυτό θες? Η πρώτη struct test στον pinakas περιέχει τις τιμές a=1,b=2,c=3 οι υπολοιπες είναι μηδέν Ναι ρε άρχοντα! Αυτός είσαι... το έσπασα από χθες το κεφαλι μου με την μ... Χίλια ευχαριστώ ρε φιλαράκι... Link to comment Share on other sites More sharing options...
nucleus Posted February 29, 2012 #14 Share Posted February 29, 2012 Ευρήκα part 2 typedef struct {int a;int b;int c;} test;test pinakas[2] = { {1,2,3},{4,5,6} };Και αυτό δουλεύει και είναι και πιο "κομψό" Link to comment Share on other sites More sharing options...
A-L-I-V-E Posted February 29, 2012 Author #15 Share Posted February 29, 2012 Ευρήκα part 2 typedef struct { int a; int b; int c; } test; test pinakas[2] = { {1,2,3},{4,5,6} }; Και αυτό δουλεύει και είναι και πιο "κομψό" Ωραίος... καταχωρεί τις τιμές {...} απ'ευθείας στις δομές τύπου test που βρίσκονται στις διαδοχικές θέσεις 0,1,2,...,ν του pinakas έτσι; Edit: Σου χρωστάω μια for... for (i=0; i<5; i++){ pinakas.a = α; pinakas.b = β; pinakas.c = γ; } Ελπίζω να είμαι σωστός καθότι νέος στη c... Link to comment Share on other sites More sharing options...
nucleus Posted February 29, 2012 #16 Share Posted February 29, 2012 Σωστός αλλά δυστυχώς δεν μπορώ να σου βάλω πάνω από 5 Link to comment Share on other sites More sharing options...
A-L-I-V-E Posted February 29, 2012 Author #17 Share Posted February 29, 2012 Έπιασα βάση μονο με μια for;;; Καλός είσαι... Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.