ورود

View Full Version : مشکل با آرایه ها



erf4n
جمعه 08 تیر 1386, 01:50 صبح
سلام !! چه طور میشه که اعضای یه آرایه رو باهم جمع کنیم ؟ من از کد پایین استفاده کردم اما جواب نداد!!

int i ,x,a[]; //ok
for(i=0,i<x,i++) //ta inja ke moshkeli nis
s+=a[i]; //ama inja dige kharab mishe
اگه ممکنه کمکم کنید و کد درست رو برام بزارین با تشکر!

someCoder
جمعه 08 تیر 1386, 02:23 صبح
مشکلت چیه؟ من که متوجه نشدم چی خراب شده!
ضمنا این اصل کدت بود یا شبه کد بود؟!

emad_67
جمعه 08 تیر 1386, 09:37 صبح
میشه بفرمایید تو این کد s چیه ؟ یه متغیر عددی هست؟

alireza643
شنبه 09 تیر 1386, 07:24 صبح
فکر کنم اگر بخواهید به a مقدار بدید اول باید تعیین کنید که چند تا عضو داره که این تعداد رو یا داخل براکت باید قرار بدید یا به وسیله ی new این کار رو انجام بدید.

hamhik
شنبه 09 تیر 1386, 22:38 عصر
اول به جای کاما ها توی حلقه for سمی کولن بزار بعد هم به متغیر کمکی مقدار صفر رو بده ببین حل می شه

erf4n
یک شنبه 10 تیر 1386, 00:43 صبح
من این کد رو برای جمع اعضای آرایه استفاده میکنم اما جواب درست نیست (در مورد سمیکلن هواسم نبود !!) اصلا سوال اینه که ~~~~~~~> چطور اعضای یک آرایه رو میشه ازشون جمع کل گرفت؟ مثلا 100 تا عضو هست می خوام که همشون با هم جمع شن!!!

emad_67
یک شنبه 10 تیر 1386, 06:58 صبح
همون طور که دوستان اشاره کردن شما باید طول آرایه رو مشخص کنید و مقدار s هم در ابتدا 0 قرار بدید


#include<iostream.h>
void main()
{
int s=0,a[5];
for(int i=0;i<5;i++)
s+=a[i];
}

erf4n
دوشنبه 11 تیر 1386, 00:54 صبح
یه سوال دیگه !! چیزه این برنامه که توی داس اجرا میشه بعد از اجرای صحیح خارج میشه (من از getch(); //for delay استفاده کردم اما بعد از اینکه enter می زنم بازم سریع خارج میشه !! یعنی فاجعه !!


راستی عماد جان نمیشه به جای عدد مشخص از یه x که مقدارش توسط ورودی تعیین بشه استفاده کرد؟؟ آخه اون موقع باید هر دفعه سورس رو عوض کرد و از نوع کامپایل کرد !! این که خیلی ضایع میشه!!

someCoder
دوشنبه 11 تیر 1386, 01:41 صبح
یه سوال دیگه !! چیزه این برنامه که توی داس اجرا میشه بعد از اجرای صحیح خارج میشه (من از getch(); //for delay استفاده کردم اما بعد از اینکه enter می زنم بازم سریع خارج میشه !! یعنی فاجعه !!


راستی عماد جان نمیشه به جای عدد مشخص از یه x که مقدارش توسط ورودی تعیین بشه استفاده کرد؟؟ آخه اون موقع باید هر دفعه سورس رو عوض کرد و از نوع کامپایل کرد !! این که خیلی ضایع میشه!!
قسمت اول رو که نفهمیدم دقیقا چی میخوای، اما برای قسمت دوم باید آرایه رو داینامیک تعریف کنی:


int s=0, n=5;

int *a = new int[n];

for(int i=0;i<n;i++) {
s+=a[i];
}

delete []a;

alireza643
دوشنبه 11 تیر 1386, 07:00 صبح
برای مشکل اول به جای اینکه برای run کردن برنامه از کلید F5 استفاده کنی گزینه ی run رو از منو انتخاب کن.

erf4n
سه شنبه 12 تیر 1386, 01:11 صبح
مشکل اینکه حتی بعد از کامپایل کردنه برنامه !! برنامه برای اینکه دوباره ازش استفاده بشه باقی نمیمونه و سریع بسته میشه !! می خواستم ببینم کدی رو باید برای برگشتن به اون منوی اول(منو که چه عرض کنم یه دستور printf ساده)هست یا نه؟

emad_67
سه شنبه 12 تیر 1386, 13:17 عصر
میتونی از یه حلقه بینهایت یا از دستور goto استفاده کنی تا مجددا به ابتدای برنامه برگرده

erf4n
دوشنبه 14 آبان 1386, 14:55 عصر
با سلام یه سوال

میشه در مورد این خط بالا توضیح بدین؟in page one

int *a = new int[n];//chera new ovordin? va inke chera int[n] bedone esme masalan int e[n] nashod

erf4n
دوشنبه 14 آبان 1386, 14:56 عصر
elete a[];// in dastor chikar mikonre va to che header file'e hast

منظور از این خط چیه لطفا جز به جز توضیح بدین

erf4n
دوشنبه 14 آبان 1386, 14:58 عصر
با سلام

میشه بفرمایین چرا اون بالا از این هدر فایل استفاده کردین page 1:

#include<iostream.h>

emad_67
دوشنبه 14 آبان 1386, 16:24 عصر
میشه در مورد این خط بالا توضیح بدین؟in page one

int *a = new int[n];//chera new ovordin? va inke chera int[n] bedone esme masalan int e[n] nashod
وقتی شما مینویسی int a[10] یه آرایه تعریف میکنی که طول اون ثابت هست ولی مثلا فرض کن بخوای طول آرایه رو از ورودی بگیری و با اون عدد یه ارایه بسازی. تو این مورد باید از آرایه داینامیک استفاده کنی. وقتی مینویسی


int *a=new int[n];

n خونه حافظه توسط دستور new گرفته میشه و آدرس ابتدای اون در اشاره گر a قرار میگیره یعنی اسم آرایه میشه a با طول n.


elete a[];// in dastor chikar mikonre va to che header file'e hast

منظور از این خط چیه لطفا جز به جز توضیح بدین

دستور delete مقدار حافظه گرفته شده رو آزاد میکنه.

میشه بفرمایین چرا اون بالا از این هدر فایل استفاده کردین page 1:

#include<iostream.h>
در مثال صفحه قبل اضافه کردن iostream ضرورتی نداره. این هدر داره کلاس های ورودی و خروجی هست. مثلا برای استفاده از cin یا cout باید اونو وارد کنی.