Προς το περιεχόμενο
  • 0
alan2

δομή με pointers

Ερώτηση

προσπαθώ να φτιάξω μια δομη δεικτη για πρόσβαση σε στοιχεία ανθρώπων .Δεν ξερω πως να το κανω ακριβως.

 

struct student{

char *address[20];

char *name[20];

char *phone[20];

char *lesson[20];

}students[2];

 

char *Search ( char lesson[],int loc)

 

{ int i;

for( i = 0; i < loc; i++)

{

if(strcmp(*students.lesson , lesson) )

printf("onoma foititi: %s", students.name);

}

return lesson;

}

 

int choice,x=0,loc=0;

 

int _tmain(int argc, _TCHAR* argv[])

{

int x=0;

char lesson[25];

int choice;

 

*students->name = "nikos","tasos";

*students->address = "Stadioy 50","Patision 150";

*students->phone = "2104545123","2125452154";

*students->lesson,"Domes Dedomenwn","logiki";

 

printf("epilekste mathima:1 domes dedomenwn 2 logiki:");

cin>>choice;

if(choice==1)strcpy(lesson,"Domes Dedomenwn");

 

else strcpy(lesson,"logiki");

 

Search(lesson,2);

cin>>x;

return 0;

}

 

(το εργαλείο για identing κώδικα δεν δουλεύει)

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

13 απαντήσεις σε αυτή την ερώτηση

Προτεινόμενες αναρτήσεις

  • 0

Χωρίς καμία διάθεση κακίας, προσβολής, κλπ, ο κώδικας που παραθέτεις...

 

α) δεν κάνει can compile

β) είναι ένα συνονθύλευμα C με C++

γ) δεν παρέχει στανταρισμένο entry-point του προγράμματος είτε το δούμε ως C είτε ως C++ ( η _tmain() είναι MS extension)

δ) δεν περιέχει ίχνος σχολίων τα οποία θα βοηθούσαν κάποιον να καταλάβει τι προσπαθείς να κάνεις

 

Από εκεί και πέρα, δεν μας λες...

 

α) ποια γλώσσα θες να χρησιμοποιήσεις

β) ποιο είναι το πρόβλημα και σε ποιο σημείο του κώδικα, αφού αυτό που περιγράφεις ως ζητούμενο το έχεις κάνει ήδη στον κώδικα που παρουσιάζεις (δηλαδή έχεις φτιάξει μια δομή με πληροφορίες φοιτητών, η οποία μπορεί να χρησιμοποιηθεί για τη δημιουργία κόμβων σε συνδεδεμένη λίστα... ανεξάρτητα του ότι πιθανότατα τα πεδία της δεν είναι ορισμένα όπως ενδεχομένως θα τα χρειαστείς... δηλαδή είναι ορισμένα ως δείκτες σε strings ενώ πιθανότατα θα τα ήθελες σκέτα strings

 

Είναι ελπίζω κατανοητό από τα παραπάνω πως είναι έως και αδύνατον να βρεθεί κάποιος να σε βοηθήσει, ακόμα και να θέλει ή/και να έχει το χρόνο να ασχοληθεί.

 

ΥΓ. Για την στοίχιση, μια καλή ιδέα είναι να αντιγράφεις τον κώδικα από τον editor/IDE σου μέσα στον editor του φόρουμ, εσωκλείοντάς τον κατόπιν μέσα σε code-tags.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
Δημοσ. (επεξεργασμένο)

Το συμπλήρωσα, αλλα ετσι και αλλιώς ξεκινάει και μόλις δεχθεί είδοδο βγάζει λάθος και τερματίζει. Χρησιμοπιώ visual c++, αλλα συνδιαζω και c. Με απλo struct με strings to εχω ηδη κάνει, απλώς η άσκηση ζητάει δομή με δείκτες.


#include "stdafx.h"
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
const int MAXST =2;
struct student{

char *address[20];
char *name[20];
char *phone[20];
char *lesson[20];
}students[2];

char *Search ( char lesson[],int loc)

{ int i;
for( i = 0; i < loc; i++)
{
if(strcmp(*students[i].lesson , lesson) )
printf("onoma foititi: %s", students[i].name);
}
return lesson;
}


int choice,x=0,loc=0;



int _tmain(int argc, _TCHAR* argv[])
{

int x=0;
char lesson[25];
int choice;


*students->name = "nikos stergiou","tasos";
*students->address = "Stadioy 50","Patision 150";
*students->phone = "2104545123","2125452154";

*students->lesson,"Domes Dedomenwn","logiki";

printf("epilekste mathima:1 domes dedomenwn 2 logiki:");
cin>>choice;
if(choice==1)strcpy(lesson,"Domes Dedomenwn");

else strcpy(lesson,"logiki");

Search(lesson,2);
cin>>x;
return 0;
}

//το identation χαλαει με το paste
Επεξ/σία από alan2

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Βαλε καλυτερα τον κωδικα σου μεσα στα tags  code ... /code     με [ ] γυρω απο καθενα απο αυτα (της αρχης και του τέλους) το /code ειναι του τελους.

...

 

εχεις και αλλη εναλλακτικη ομως... το ideone.com το οποιο έχει και ενσωματωμενο compiler.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
Δημοσ. (επεξεργασμένο)

Το συμπλήρωσα, αλλα ετσι και αλλιώς ξεκινάει και μόλις δεχθεί είδοδο βγάζει λάθος και τερματίζει. Χρησιμοπιώ visual c++, αλλα συνδιαζω και c. Με απλα string to εχω ηδη κάνει, απλώς η άσκηση ζητάει δομή με δείκτες.

 

#include "stdafx.h"

#include<stdio.h>

#include<string.h>

#include<iostream>

using namespace std;

const int MAXST =2;

struct student{

 

char *address[20];

char *name[20];

char *phone[20];

char *lesson[20];

}students[2];

 

char *Search ( char lesson[],int loc)

 

{ int i;

for( i = 0; i < loc; i++)

{

if(strcmp(*students.lesson , lesson) )

printf("onoma foititi: %s", students.name);

}

return lesson;

}

 

 

int choice,x=0,loc=0;

 

 

 

int _tmain(int argc, _TCHAR* argv[])

{

 

int x=0;

char lesson[25];

int choice;

 

 

*students->name = "nikos stergiou","tasos";

*students->address = "Stadioy 50","Patision 150";

*students->phone = "2104545123","2125452154";

 

*students->lesson,"Domes Dedomenwn","logiki";

 

printf("epilekste mathima:1 domes dedomenwn 2 logiki:");

cin>>choice;

if(choice==1)strcpy(lesson,"Domes Dedomenwn");

 

else strcpy(lesson,"logiki");

 

Search(lesson,2);

cin>>x;

return 0;

}

 

//το identation χαλαει με το paste

Θα μπορούσες να το αλλάξεις σε:
#include<stdio.h>
#include<string.h>
#include<iostream>

using namespace std;
const int MAXST = 2;

struct student {

	char address[20];
	char name[20];
	char phone[20];
	char lesson[20];
} students[2];

char *Search(char lesson[], int loc)

{
	int i;
	for (i = 0; i < loc; i++) {
		if (!strcmp(students[i].lesson, lesson)) // !
			printf("onoma foititi: %s", students[i].name);
	}
	return lesson;
}

int choice, x = 0, loc = 0;

int main(void) {

	int x = 0;
	char lesson[25];
	int choice;

	strcpy(students[0].name, "nikos stergiou");
	strcpy(students[0].address, "Stadioy 50");
	strcpy(students[0].phone, "2104545123");
	strcpy(students[0].lesson, "Domes Dedomenwn");

	strcpy(students[1].name, "tasos");
	strcpy(students[1].address, "Patision 150");
	strcpy(students[1].phone, "2125452154");
	strcpy(students[1].lesson, "logiki");

	printf("epilekste mathima:\n1 domes dedomenwn 2 logiki\n>");
	cin >> choice;

	strcpy(lesson, choice == 1 ? "Domes Dedomenwn": "logiki");

	Search(lesson, 2);
	cout << endl <<"Press Enter to exit..";

	// flush (hopefully) cin from \n .. */
	while(cin.get() != '\n');
	cin.get();

	return 0;
}
ΕΞΟΔΟΣ:
epilekste mathima:
1 domes dedomenwn 2 logiki
>1
onoma foititi: nikos stergiou
Press Enter to exit..
* Γενικά ο κώδικας σου χρειάζεται αναθεώρηση (ειδικά αν εννοείς αυτολεξεί τον τίτλο του θέματος!), μεγάλο μπλέξιμο (δεν θεωρώ σκόπιμο να σχολιάσω γραμμής προς γραμμή τις ενδεικτικές αλλαγές - πέραν του strcmp που για να κάνεις αυτό που θες πρέπει η τιμή του να είναι == 0). Επεξ/σία από Directx

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

...

Με απλα string to εχω ηδη κάνει, απλώς η άσκηση ζητάει δομή με δείκτες.

 

Αν ερμηνεύω σωστά το παραπάνω, τότε μάλλον θέλεις να αλλάξεις τον ορισμό της δομής σου από...

struct student{
    char *address[20];
    char *name[20];
    char *phone[20];
    char *lesson[20];
};
σε...
struct student{
    char *address;
    char *name;
    char *phone;
    char *lesson;
};
να ορίζεις δηλαδή τα πεδία ως δείκτες αντί για πίνακες, και κατόπιν να τα δεσμεύεις δυναμικά ως strings (εσύ αυτή τη στιγμή ορίζεις τα πεδία ως δείκτες σε στατικώς ορισμένα strings).

 

Αν λοιπόν όντως έχω ερμηνεύσει σωστά, τότε μπορείς να δεσμεύσεις δυναμικά τα πεδία της δομής ας πούμε του 1ου μαθητή κάπως έτσι...

...
#define STR_MAXSIZ  (20+1)
...
struct student *s = &students[0];  // απλώς για μετέπειτα συντομία

if ( NULL == (s->address = calloc(STR_MAXSIZ, 1)) ) {
    // διαχειρίσου εδώ την αποτυχία της calloc() να δεσμεύσει μνήμη
}
if ( NULL == (s->name= calloc(STR_MAXSIZ, 1)) ) {
    // διαχειρίσου εδώ την αποτυχία της calloc() να δεσμεύσει μνήμη
}
if ( NULL == (s->phone= calloc(STR_MAXSIZ, 1)) ) {
    // διαχειρίσου εδώ την αποτυχία της calloc() να δεσμεύσει μνήμη
}
if ( NULL == (s->lesson= calloc(STR_MAXSIZ, 1)) ) {
    // διαχειρίσου εδώ την αποτυχία της calloc() να δεσμεύσει μνήμη
}
Στην πράξη βέβαια τα πράγματα γίνονται αρκετά πιο σύνθετα, μιας και πρέπει να διαχειριστείς μόνος σου τη μνήμη αυτών των strings σε όλη την εμβέλεια του προγράμματός σου, και με κατάλληλους ελέγχους.

 

Ο παρακάτω κώδικας δεσμεύει μνήμη για τους φακέλους MAXSTUDS μαθητών, τους τυπώνει κενούς (ως επιβεβαίωση πως όλα πήγαν καλά), κατόπιν αποδεσμεύει την μνήμη και τερματίζει.

 

Κρίνοντας από τον κώδικα που έχεις παραθέσει, έχεις αρκετές ελλείψεις όποτε θα υπάρχουν πολλά πράγματα σε αυτόν εδώ που δε θα τα καταλάβεις τώρα, ελπίζω όμως να σου φανεί χρήσιμος στην συνέχεια όταν καλύψεις με διάβασμα τις ελλείψεις σου (ή σε κάποιο άλλο παιδί). Νομίζω όμως πως περιέχει κι αρκετά που μπορεί να τα κατανοήσεις κι απευθείας.

 

 

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

#define MAXSTUDS	2
#define STR_MAXSIZ  (20+1)

/* macro for safer free() */
#define FREE(p)			\
do {				\
	if ( p ) {		\
		free(p);	\
		(p) = NULL;	\
	}			\
}while(0)

/* macro for safer & more descriptive puts() */
#define PUTS(str)		\
	puts( !str ? "<NULL>" : !*str ? "<empty>" : str )

/* */
struct Student{
	char *address;
	char *name;
	char *phone;
	char *lesson;
};

/* --------------------------------------------- */
void students_print( struct Student students[] )
{
	int i=0;

	if ( !students )
		return;

	for (i=0; i < MAXSTUDS; i++)
	{
		printf( "STUDENT %d\n", i );
		PUTS( students[i].address );
		PUTS( students[i].name );
		PUTS( students[i].phone );
		PUTS( students[i].lesson );
		putchar( '\n' );
	}
}
/* ---------------------------------------------
 * Cleanup all student records (that is: free reserved memory, if any )
 */
void students_cleanup( struct Student students[] )
{
	int i=0;

	if ( !students )
		return;

	for (i=0; i < MAXSTUDS; i++)
	{
		FREE( students[i].address );
		FREE( students[i].name );
		FREE( students[i].phone );
		FREE( students[i].lesson );
	}
}
/* ---------------------------------------------
 * Initialize all students records (this only reserves needed memory, it does not set data)
 */
int students_init( struct Student students[] )
{
	int i=0;

	if ( !students )
		return 0;

	for (i=0; i < MAXSTUDS; i++ )
	{
		int memfail = 0; /* false */
		if ( NULL == (students[i].address = calloc(STR_MAXSIZ,1)) ) {
			memfail = 1;
		}
		if ( NULL == (students[i].name = calloc(STR_MAXSIZ,1)) ) {
			memfail = 1;
		}
		if ( NULL == (students[i].phone = calloc(STR_MAXSIZ,1)) ) {
			memfail = 1;
		}
		if ( NULL == (students[i].lesson = calloc(STR_MAXSIZ,1)) ) {
			memfail = 1;
		}

		if ( memfail ) {
			students_cleanup( students );
			return 0; /* false */
		}
	}
	return 1; /* true */
}
/* --------------------------------------------- */
int main( void )
{
	struct Student students[MAXSTUDS] = { {NULL, NULL, NULL, NULL} };

	/* initialization */
	if ( !students_init(students) ) {
		fputs( "** fatal error: possible memory shortage, aborting...", stderr );
		system( "pause" );   /* Windows only */
		return 1;
	}

	students_print( students );

	/* cleanup */
	students_cleanup( students );

	system( "pause" );   /* Windows only */
	return 0;
}

 

Αν σε χαλάνε τα macros ή δεν τα έχετε μάθει ακόμα, μπορείς να τα μετατρέψεις σε συναρτήσεις.

 

Έξοδος:

STUDENT 0
<empty>
<empty>
<empty>
<empty>

STUDENT 1
<empty>
<empty>
<empty>
<empty>

Press any key to continue . . .
  • Like 1

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

τι είναι τούτο πάλι (τι βλέπουν τα μάτια μου)

struct student{char *address[20];char *name[20];char *phone[20];char *lesson[20];}students[2];
char *address[20];

 

/* Αναζήτηση κάποιου σπουδαστή αν έχει (είναι γραμμένος σε) κάποιο μάθημα */

#include "stdafx.h"
#include <string>
#include <iostream>
#include <Windows.h>
#include <malloc.h>

using namespace std;

#define MAX_CHAR_SIZE 20

typedef struct
{
	char *address;
	char *name;
	char *phone;
	char *lesson;
}student;

bool Search(student st, char lesson[]);
void Write(student st, char *lesson);
void AskScreen();
void PrintStudentDetails(student st);

int _tmain(int argc, _TCHAR* argv[])
{
	student st1 = { "Makedonomaxwn", "Nikos Stergiou", "090 800 700", "Data Structures" };
	student st2 = { "Athina", "Thomas Papadopoulos", "090 800 700", "Operating System" };
	student st3 = { "Katerini", "Axileas Cketo", "090 800 700", "Databases" };

	// Ask to select lesson
	AskScreen();

	// Read user choice
	int uChoice = 0;
	cout << endl << "Enter Choice: ";

	do
	{
		cin >> uChoice;
		if (uChoice > 2 || uChoice < 1)
		{
			// Sleep console for 1 second
			cout << "Please be in-range (1 or 2)" << endl;
			Sleep(1000);
			
			// Clear Console
			system("cls");

			// Show again Menu
			AskScreen(); // Show again choices
			cout << endl << "Enter Choice: ";
		}

	}
	while(uChoice > 2 || uChoice < 1);

	// Memory Allocation
	char * lesson;
	lesson = (char *)malloc(sizeof(char) * MAX_CHAR_SIZE);

	// An short way of if-else
	strcpy(lesson, uChoice == 1? "Data Structures" : "Operating Systems");

	// Print if they got lessons
	Write(st1, lesson);
	Write(st2, lesson);

	/* Or direct input lesson by typing text 
	--in this case we wil check student st3 if he got those 2 lessons */
	Write(st3, "Data Structures");
	Write(st3, "Databases");

	cout << endl;
	return 0;
}
void AskScreen()
{
	cout << "Select Lesson: " << endl;
	cout << "1. Data Structures" << endl;
	cout << "2. Operating Systems" << endl;
}

bool Search(student st, char lesson[])
{
	student temp = st;
	bool hasLesson = false;

	if ( !strcmp(temp.lesson, lesson) )
		hasLesson = true;

	return (hasLesson);
}

void Write(student st, char *lesson)
{
	// Search if student has lesson Data structures
	if (Search(st, lesson))
	{
		cout << "(" << st.name << ") has lesson (" << lesson << ")" << endl;
		PrintStudentDetails(st);
	}
	else
		cout << "(" << st.name << ") has NOT lesson (" << lesson << ")" << endl << endl;
}

void PrintStudentDetails(student st)
{

	cout << "Name:\t\t" << st.name << endl;
	cout << "Address:\t" << st.address << endl;
	cout << "Phone:\t\t" << st.phone << endl;
	cout << "Lesson:\t\t" << st.lesson << endl;
	cout << endl;
}

Ίσως η λέξη Write() να μην είναι τόσο περιγραφική επειδή κάνει αναζήτηση και ανάλογα εκτυπώνει, βρες κάτι εσύ...

 

(καταρχάς δεν ξέρω αν ήθελες αυτό...)

 

Output

 

Select Lesson:

1. Data Structures

2. Operating Systems

 

Enter Choice: 1

(Nikos Stergiou) has lesson (Data Structures)

Name:           Nikos Stergiou

Address:        Makedonomaxwn

Phone:          090 800 700

Lesson:         Data Structures

 

(Thomas Papadopoulos) has NOT lesson (Data Structures)

 

(Axileas Cketo) has NOT lesson (Data Structures)

 

(Axileas Cketo) has lesson (Databases)

Name:           Axileas Cketo

Address:        Katerini

Phone:          090 800 700

Lesson:         Databases

 

 

Πιέστε ένα πλήκτρο για συνέχεια. . .

  • Like 1

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

τι είναι τούτο πάλι (τι βλέπουν τα μάτια μου)

struct student{char *address[20];char *name[20];char *phone[20];char *lesson[20];}students[2];
char *address[20];

 

 

Γιατί το παρακάτω είναι καλύτερο και σε πείραξε αυτό ? :P

 

 

#include "stdafx.h"
#include <string>
#include <iostream>
#include <Windows.h>
#include <malloc.h>

 

 

Καταρχήν όπως είπε και ο migf1 ή να γράφουμε C ή να γράφουμε C++. Τα windows.h και malloc.h είναι C++ ? Το local include stdafx.h τι είναι ? Πολύ πιθανώς να κάνω λάθος αλλά νομίζω είναι μαγκιά του Visual Studio οπότε δεν είναι portable.

 

 

using namespace std;

 

 

Αυτό είναι πιο πολύ υποκειμενικό αλλά από ό,τι διαβάζω μπορεί υπό συνθήκες να δημιουργήσει προβλήματα σε νέους χρήστες και συνήθως συστήνεται να χρησιμοποιείται "using std::cout",κτλ ώστε και πάλι να γράφεται κατευθείαν cout αλλά να μην έρθει ολόκληρο το namespace.

 

 

int _tmain(int argc, _TCHAR* argv[])

 

 

Μη-portable κώδικας μόνο για Windows (και ίσως όχι για όλους τους windows compilers)

 

 

	student st1 = { "Makedonomaxwn", "Nikos Stergiou", "090 800 700", "Data Structures" };

 

 

Ανάθεση const char * σε char *. Αυτό δεν είναι και τόσο τρομερό αλλά μια και μιλάμε.

 

 

			Sleep(1000);
			
			// Clear Console
			system("cls");

 

 

Και πάλι συναρτήσεις που παίζουν μόνο σε Windows (και ακόμη και στα windows δεν είναι η πιο δόκιμη λύση για τη δουλειά που κάνουν)

 

 

	lesson = (char *)malloc(sizeof(char) * MAX_CHAR_SIZE);
	strcpy(lesson, uChoice == 1? "Data Structures" : "Operating Systems");

 

 

C είπαμε ότι γράφουμε ?

 

Πιθανότατα και πολλές άλλες παρατηρήσεις αλλά αφενός σε αυτό το σημείο βαρέθηκα να γράψω άλλα και αφετέρου δεν γνωρίζω C++ :P

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

imitheos, το ξέρω αγόρι μου ότι δεν αρέσω εδώ μέσα και δεν θα ασχοληθώ να απαντήσω σε αυτά που γράφεις, το μόνο που θα πω είναι ότι ΝΑΙ έχει κομμάτια κώδικα από C++ (κάτι το οποίο το ξέχασα, ε και στο τέλος άλλη δουλειά δεν είχα και να αλλάζω τα cout/cin se printf/scanf Κλπ)

 

Σε C το ήθελε το παιδί ε?

 

και κάτι άλλο, έχει διάφορες λεπτομέιες όπως αυτά που έχεις τονίσει "windows.h", sleep... τα έβαλα για πάρτι μου, αν θέλει το παιδί ας μην βάλει Delay, ας μην βάλει "cls"

 

για αυτό που λες

student st1 = { "Makedonomaxwn", "Nikos Stergiou", "090 800 700", "Data Structures" };

δεν με ενδιαφέρει, δεν θα κάτσω τώρα να μαντέψω τι λειτουργικό μπορεί να έχει ο άλλος και αν είναι μεταφέρσιμο (το ξέρω ότι πρέπει να κοιτάμε να γράφουμε κώδικα που αν γίνεται να τρέχει και σε άλλα λειτουργικά χωρίς μεγάλες αλλαγές) (δεν ξέρω αν τα linux δέχονται αυτόν τον τρόπο και δεν με ενδιαφέρει γιατί δεν ασχολούμε)

 

Φιλάκια



ΥΓ: η malloc είναι της C

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

imitheos, το ξέρω αγόρι μου ότι δεν αρέσω εδώ μ

έσα και δεν θα ασχοληθώ να απαντήσω σε αυτά που γράφεις,

Για άλλη μια φορά το "έγραψες βλακεία" ερμηνεύεται ως "είσαι βλάκας". Πως ξέρεις δηλαδή ότι δεν αρέσεις ? Άσε που σε ξέρω και από χτες και δεν μου αρέσεις ? Τα posts είναι αυτά που κρίνονται και όχι τα άτομα. Και ο αδερφός μου να έγραφε το μήνυμά σου τα ίδια ακριβώς θα απαντούσα. Όταν σχολιάζεις "τι βλέπουν τα μάτια μου" και μετά παραθέτεις κώδικα 7 φορές χειρότερο τι περιμένεις δηλαδή ?

το μόνο που θα πω είναι ότι ΝΑΙ έχει κομμάτια κώδικα από C++ (κάτι το οποίο το ξέχασα, ε και στο τέλος άλλη δουλειά δεν είχα και να αλλάζω τα cout/cin se printf/scanf Κλπ)

 

Σε C το ήθελε το παιδί ε?

 

και κάτι άλλο, έχει διάφορες λεπτομέιες όπως αυτά που έχεις τονίσει "windows.h", sleep... τα έβαλα για πάρτι μου, αν θέλει το παιδί ας μην βάλει Delay, ας μην βάλει "cls"

 

για αυτό που λες

student st1 = { "Makedonomaxwn", "Nikos Stergiou", "090 800 700", "Data Structures" };
δεν με ενδιαφέρει, δεν θα κάτσω τώρα να μαντέψω τι λειτουργικό μπορεί να έχει ο άλλος και αν είναι μεταφέρσιμο (το ξέρω ότι πρέπει να κοιτάμε να γράφουμε κώδικα που αν γίνεται να τρέχει και σε άλλα λειτουργικά χωρίς μεγάλες αλλαγές) (δεν ξέρω αν τα linux δέχονται αυτόν τον τρόπο και δεν με ενδιαφέρει γιατί δεν ασχολούμε)

 

Φιλάκια

ΥΓ: η malloc είναι της C

 

 

Βγες και από πάνω κιόλας. Για κόψε λίγο το υφάκι. Μου κάνεις και χάρη να απαντήσεις και να πεις "μόνο πως ΝΑΙ έχει C++".

 

Η ανευθυνότητα σε όλο το μεγαλείο. Άμα είναι έτσι σε κάθε κώδικα που δίνουμε να βάζουμε και άσχετα κομμάτια έτσι για τη πάρτη μας. Τον κώδικα για πάρτη σου τον έγραψες ή για αυτόν που ρώτησε ? Ή θέλεις να ασχοληθείς και να βοηθήσεις ή δεν θέλεις. Αν "δεν έχεις άλλη δουλειά να αλλάζεις τα cout" και "δεν κάθεσαι να μαντέψεις λειτουργικό" και "δεν σε ενδιαφέρει", τότε να μην γράφεις καθόλου κώδικα.

 

Και άλλους έχω δει εδώ να γράφουν κακό κώδικα (και σίγουρα και εγώ έχω γράψει) αλλά τουλάχιστον το έκαναν από έλλειψη εμπειρίας και όχι επειδή "δεν είχαν άλλη δουλειά να κάνουν από το να γράψουν σωστό κώδικα".

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε έναν λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι εύκολο!

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
×
×
  • Δημιουργία νέου...

Χρήσιμες πληροφορίες

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.