PDA

View Full Version : مبتدی: سوال در مورد یک برنامه جمع عناصر در آرایه



smemamian
جمعه 03 آذر 1391, 00:41 صبح
سلام دوستان

این یه مثال هستش:

برنامه ای با آرایه دو بعدی بنویسید که شماره هر سطر را نوشته و در مقابل آن جمع عناصر آن سطر را هم محاسبه و چاپ نماید :


#include <iostream.h>
#include <conio.h>

void sum(int[][2], int); //------------------> اعلان تابع با پارامترهای نام آرایه و طول آن

void main()
{
const int m=3, n=2;
int matrix[m][n] = {{2,5}, {15,9}, {0,32}};

sum(matrix, m);
getch();
}

void sum(int x[][2], int a)
{
int i, j;
cout << "Row\t\t" << "Sum\t";
cout << "---------------------\n";

for (i=0 ; i<a ; i++)
{
int sum = 0;
for (j=0 ; j<2 ; j++)
sum += x[i][j];
cout << i+i << "\t\t" << sum << "\n";
}
}

خروجی :


Row Sum
---------------
1 7
2 24
3 32

ممنون میشم اگر در چند خط به صورت مبتدی تریس کنید .
چرا در خط 4 یکی [] و دیگری [2] قرار داره ؟

hadi0x7c7
جمعه 03 آذر 1391, 00:47 صبح
این به خاطر اینه که کامپایلر بتونه ادرسو راحت محاسبه کنه.

int a[][4]

a[i][j] = a[i + 3 * j]

مسعود اقدسی فام
جمعه 03 آذر 1391, 01:25 صبح
عددی که حتما باید مشخص باشه تعداد ستون هست. اینکه تعداد سطر مشخص مهم نیست. فقط تعداد سطر مشخص باشه هم درست نیست. مثلا فرض کنید:




int a[3][] = { 1, 2, 3, 4 };




این عبارت مشخص می‌کنه که یه آرایه سه سطری درست کن. اما این عناصری که نوشته شده آیا همه مال سطر اول هستن؟ یا یه تیکه سطر اول و یه تیکه سطر دوم؟ یا پخش بین سه سطر؟ چی انتهای یه سطر رو مشخص می‌کنه؟

اما این عبارت:




int a[][3] = { 1, 2, 3, 4 };




تعداد سطرها معلوم نیست. اما با توجه به اینکه سه ستون داره، اعداد یک تا سه متعلق به سطر اول و عدد چهار اول سطر دوم قرار می‌گیره. پس ماتریس دو سطر داره.

برای همینه که مشخص بودن ستون کاملا واجبه. ولی سطر کمک خاصی نمی‌کنه.