Η σελίδα μας αναβαθμίστηκε, γι' αυτό τον λόγο τα μέλη μας θα πρέπει να ζητήσουν νέο κωδικό πρόσβασης από την υπηρεσία "Αποστολή κωδικού πρόσβασης".
Εάν το email με τον νέο κωδικό δεν έρθει στο inbox κοιτάξτε και στο spam folder. Ο server είναι φρέσκος και δεν έχει το reputation που του αξίζει.

Προβλημα με αθροισμα

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
babist
Δημοσιεύσεις: 105
Εγγραφή: 15 Οκτ 2009 14:41

Προβλημα με αθροισμα

Δημοσίευση από babist » 26 Οκτ 2013 23:31

Εχω κανει αυτον τον κωδικα και θελω με μια συναρτηση να βαζει αριθμο στο a και στο b
και με μια αλλη να βρισκει το αθροισμα,αλλα δεν μπορω να ενωσω τα κομματια αναμεσα
στις 2 συναρτησεις
καμια γνωμη?

Κώδικας: Επιλογή όλων

#include<StdAfx.h>
#include<iostream>
#include<conio.h>
using namespace std;

int readData&#40;&#41;;
int summ&#40;int x,int y&#41;;

int main&#40;&#41;
&#123;
	int a,b,c;
	readData&#40;&#41;;
	summ&#40;a,b&#41;;
	getch&#40;&#41;;
&#125;
int readData&#40;&#41;
&#123;
	int a,b;
	cout<<"dwse a&#58;";
	cin>>a;
	cout<<"dwse b&#58;";
	cin>>b;
	return a,b;
&#125;
int summ&#40;int x,int y&#41;
&#123;
	int z;
	z=x+y;
	cout<<"to z einai&#58;"<<z<<endl;
	return z;
&#125;

Άβαταρ μέλους
xultimatex
Honorary Member
Δημοσιεύσεις: 2501
Εγγραφή: 26 Ιούλ 2003 13:02
Τοποθεσία: Ξάνθη
Επικοινωνία:

Προβλημα με αθροισμα

Δημοσίευση από xultimatex » 28 Οκτ 2013 11:24

Πιστεύω ότι σου ξεφεύγει μια πολύ βασική αρχή στον προγραμματισμό: Η εμβέλεια των μεταβλητών.
Πρακτικά αυτό σημαίνει ότι τις μεταβλητές μιας συνάρτησης δεν μπορούν να τις πειράξουν άλλες συναρτήσεις. Για παράδειγμα οι μεταβλητές a,b,c που έχεις στη main() είναι τελείως διαφορετικές από αυτές που έχεις στιν readData() και ας έχουν το ίδιο όνομα. Οπότε ότι και να κάνεις στην readData() δεν περνάει στη main().

Η εντολή return από την άλλη παίρνει μόνο μία μεταβλητη (το return a,b είναι λάθος) και επιστρέφει την τιμή αυτή όταν τελειώσει η συνάρτηση. Για παράδειγμα:

Κώδικας: Επιλογή όλων

int a;
a=readData&#40;&#41;;
Δυστυχώς δε γίνεται μια συνάρτηση να επιστρέψει πολλές μεταβλητές στην c/c++ και γενικά σε λίγες γλώσσες γίνεται. Αν θέλεις να κρατήσεις αυτή τη δομή ίσως να πρέπει να επιστρέψεις έναν πίνακα (int[]) με δύο θέσεις όπου στην πρώτη θα έχεις το a και στην άλλη το b. Αλλιώς, ίσως να ήταν καλύτερα την readData() να την ενσωματώσεις στην main για να έχεις πρόσβαση στις μεταβλητές.
:arrow: Αν προσπαθείς πολύ για να πετύχεις κάτι, ίσως το κάνεις με λάθος τρόπο...

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες