• 0
بلسم أمل

[ تمت الإجابة ]call local variable to main method

سؤال

السلام عليكم ورحمة الله وبركاته:

لو سمحتو انا استخدم برنامج dev -c حاليا.. بس أواجه مشكله في استدعاء local variable n 

الى main .... سؤالي بسيط وهو: كيف اقدر اعمل return لل n الى main method..؟؟؟ 

جالسه أعمل تجارب واريدكم تساعدووني :lol:

 

--------------

#include <cstdlib>#include <iostream> try using namespace;int sum(){   int m,n,s;   printf("enter the marks \n");   scanf("%d", &m);       n=0; s=0;    while(m!=-1){                 s=s+m;                 ++n;                 printf("enter the marks \n");                   scanf("%d", &m);}return s;}int main (int argc, char *arvg[]){int=x;x=sum();printf("%d",x);system("PAUSE");    return EXIT_SUCCESS;}
تم تعديل بواسطه Snack3r
تعودي على استخدام الوسم الخاص بالكود !
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

6 إجابة على هذا السؤال .

  • 0

السلام عليكم

 

الكود سي و ليس سي++ :

#include<stdio.h>#include<stdlib.h>#include<stdbool.h>int sum() {    int m, n, s;    n = s = 0;    do {        printf("Enter the marks : ");        scanf("%d", &m);        if (m == -1)            break;        s += m;        n++;    } while (true);    return s;}int main(int argc, char **arvg) {    int x = sum();    printf("%d\n", x);    system("PAUSE");    return EXIT_SUCCESS;}

لم أقهم سؤالك جيدا, هل تريدين إعادة s و n معا ؟

إذا كان هذا هو السؤال فيمكنك جعل الدالة تُعيد مصفوفة من عنصرين مثلا أو استخدمي structure تحتوي على two int.

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نعم اريد اعادة s,n  معا..

كيف ممكن اعمل مصفوفة تعيد عنصرين؟؟ عطني مثال يساعدني

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لغة C لا تسمح للدوال بإعادة أكثر من كائن, لكن توجد عدة حلول لهذه المشكلة, أحد أبرز هذه الحلول هو التمرير بالمرجع لأن التغييرات ستحدث على مستوى العنوان و ليس القيمة, يوجد أيضا حل آخر و هو تمرير بنية أو مؤشر بنية تحوي مجموعة العناصر التي نريد تغيير قيمها.

يمكنك جعل الدالة تعيد مصفوفة من int لكن لا أفضل مثل هذا الحل.

 

استخدام الـ structures هكذا :

#include <stdio.h>typedef struct {    int a;    int b;} example;example test(int x, int y) {    example structExample;    structExample.a = x;    structExample.b = y;    return structExample;}int main() {    example struct1 = test(3, 4);    example struct2 = test(1, 9);    printf("struct1 : %d %d\n", struct1.a, struct1.b);    printf("struct2 : %d %d\n", struct2.a, struct2.b);    return 0;}

تحياتي.

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكـــرا أستاذنا.. بس م اعرف استخدم ال structure بشكل كثير .. ما متعوده أستخدمه يوجد عندك طريقة المصفوفه؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

البرنامج الذي طرحته لا يعمل لان به بعض الاخطاء القواعدية ، لكن عموما يمكنك استعمال العناوين المرجعية هكذا

#include <cstdlib>#include <iostream> using namespace std;void sum(int &s,int &n){   int m;   printf("enter the marks \n");   scanf("%d", &m);       n=0; s=0;    while(m!=-1){                 s=s+m;                 ++n;                 printf("enter the marks \n");                   scanf("%d", &m);}}int main (int argc, char *arvg[]){int s,n;sum(s,n);printf("%d\n",s);printf("%d\n",n);system("PAUSE");    return EXIT_SUCCESS;}
2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ايوا فهمت الحين.. شكــــــــــــــــــــرا جزيلا abdou&snack3r  على وقتكم

.. م كنت افكر انه ممكن اعمل تعريف للمتغيرات ف function :blush:

يارب زدني علما..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .