|
int m[6]={1,4,-5,2,10,3]; float a[4]
|
bet | 2/2 | Sana | 17.05.2024 | Hajmi | 344,36 Kb. | | #240259 |
Bog'liq 3-amaliy ishint m[6]={1,4,-5,2,10,3]; float a[4];
Massiv statik va dinamik bo’lishi mumkin. Statik massivning uzunligi oldindan ma’lum bo’lib, u xotirada ma’lum adresdan boshlab ketma-ket joylashadi. Dinamik massivni uzunligi programma bajarilish jarayonida aniqlanib, u dinamik xotiradagi ayni paytda bo’sh bo’lgan adreslarga joylashadi. Masalan, int m[6]; ko’rinishida e’lon qilingan bir o’lchamli massiv elementlari xotirada quyidagicha joylashadi:
Adress Qiymatlar
Bir o’lchamli massivning xotirada joylashuvi
Massivning i- elementiga m[i] yoki *(m+i) - vositali murojaat qilish mumkin. Massiv uzunligini sizeof(m) amali orqali aniqladi. Massiv e’lonida uning elementlariga boshlang’ich qiymatlar berish mumkin va uning bir nechta variantlari mavjud.
1) o’lchami ko’rsatilgan massiv elementlarini to’liq inisializasiyalash:
int t[5]={-10,5,15,4,3};
Bunda 5 ta elementdan iborat bo’lgan t nomli butun turdagi bir o’lchamli massiv e’lon qilingan va uning barcha elementlariga boshlang’ich qiymatlar berilgan. Bu e’lon quyidagi e’lon bilan ekvivalent: int t[5]; t[0]=-10; t[1]=5; t[2]=15; t[3]=4; t[4]=3;
2) o’lchami ko’rsatilgan massiv elementlarini to’liqmas inisializasiyalash:
int t[5]={-10,5,15};
Bu yerda faqat massiv boshidagi uchta elementga boshlang’ich qiymatlar berilgan. Shuni aytib o’tish kerakki, massivning boshidagi yoki o’rtasidagi elementlariga qiymatlar bermasdan, uning oxiridagi elementlarga boshlang’ich qiymat berish mumkin emas. Agarda massiv elementlariga boshlang’ich qiymat berilmasa, unda kelishuv bo’yicha
static va extern modifikatori bilan e’lon qilingan massiv uchun elementlarining qiymati 0 soniga teng deb, automatic massivlar elementlarining boshlang’ich qiymatlari noma’lum hisoblanadi.
3) o’lchami ko’rsatilmagan massiv elementlarini to’liq inisializasiyalash:
int t[]={-10,5,15,4,3};
Bu misolda massivni barcha elementlariga qiymatlar berilgan hisoblanadi, massiv uzunligi kompilyator tomonidan boshlang’ich qiymatlar soniga qarab aniqlanadi. Agarda massiv uzunligi berilmasa, boshlang’ich qiymati berilishi shart.
#include
using namespace std;
int main() {
int n;
cout << "Massiv uzunligini kiriting: ";
cin >> n;
int massiv[n];
cout << "Massiv elementlarini kiriting:\n";
for (int i = 0; i < n; i++) {
cin >> massiv[i];
}
int juftOrindagiYigindi = 0;
int toqOrindagiKoypaytma = 1;
for (int i = 0; i < n; i++) {
if (i % 2 == 0) {
juftOrindagiYigindi += massiv[i];
} else {
toqOrindagiKoypaytma *= massiv[i];
}
}
if (toqOrindagiKoypaytma != 0) {
int natija = juftOrindagiYigindi / toqOrindagiKoypaytma;
cout << "Juft orindagi elementlari yig'indisi bolmasi: " << natija << endl;
} else {
cout << "Toq orindagi kopaytma nolga teng bo'ldi. Bo'lish amalini amalga oshirib bo'lmaydi." << endl;
}
return 0;
}
|
| |