();
{ ;
;
return natija;}
16.Dasturlashda strukturalar. Strukturani e’lon qilish, boshlang’ich qiymat berish. Strukturalar massivi
Tayanch iboralar: Struktura, struktura e’loni, strukturani ishlatish, boshlang’ich qiymat berish, struktura funksiya parametri sifatida, strukturaga ko’rsatkich.
Ta‘rif: C++ dasturlash tilida bir yoki bir nechta turlarni jamlanmasini birlashtirish struktura deb nomlanadi. Strukturalarni ba‘zi hollarda yozuvlar ham deb ataladi, strukturalar tarkibidagi turlarning har biri maydon deb nomlanadi. C++ dasturlash tilida strukturalarni e‘lon qilishda struct xizmatchi so‗zidan foydalaniladi. Struktura e‘lon qilingandan so‗ng dastur tarkibida o‗zgaruvchilarni struktura nomi bilan e‘lon qilinadi. C++ dasturlash tilida strukturalarni tasvirlashning umumiy ko‗rinishi quyidagicha ko’rinishda bo’ladi:
Strukturalarni tasvirlashda struct xizmatchi so’zidan keyin struktura nomi va fegurali qavsda uning maydonlari kiritilishi shart. Masalan, talabalar haqida ma‘lumotlar bazasida struktura nomini talaba yoki supermarket mahsulotlari deb nomlash mumkin. Strukturalar yartish jarayonini tushunish uchun C++ dasturlash tilida talabalar haqida ma‘lumotlar bazasini struktura yordamida quyidagicha hosil qilinadi: Misol: Talabalar(familyasi, ismi, telefoni, reytingi, tug‘ilgan yili) haqida ma‘lumotlarga asosan c++ dasturlash tilida struktura hosil qiling.
. Struktura o’zgaruvchisini e‘lon qilishning umumiy ko’rinishi quyidagicha bo’ladi:
C++ dasturlash tilida strukturalarga murojat qilishning umumiy ko’rinishi quyidagicha bo’ladi: .
25. Sonli massiv berilgan. Unda bir xil qo’shni elementlar juftligini qanchaligini toping.
#include
using namespace std;
int main()
{ int n;
cin>>n;
int a[n];
for (int i=0;icin>>a[i]; }
int cnt=0;
for (int i=1;iif (a[i]==a[i-1])
cnt++; }
cout<return 0;}
26 Har xil M va N tartibli ikki bir o’lchamlimassiv va K (K
#include
using namespace std;
int main()
{ int m,n,j = 1;
cin >> m >> n;
float a[m+n],b[n+m];
for(int i = 1; i <= m; i++) {
cin >> a[i]; }
for(int i = 1; i <= n; i++) {
cin >> b[i];}
int k;
cin >> k;
for(int i = n+1; i <= m+n; i++) {
b[i] = a[k+1];}
for(int i = k+1; i <= k+n+m; i++) {
a[i] = b[j];
j++;}
for(int i = 1; i <= m + n; i++) {
cout << a[i] << " ";}
return 0;}
27. a1,a2,… ,an haqiqiy sonlar berilgan. Eng katta va eng kichik elementlar o’rnini almashtiring.
#include
using namespace std;
int main(){
int n, s = 0;
cin >> n; // 1
int a[n], min=INT_MAX, max=INT_MIN, min_index, max_index;
for (int i = 0; i < n; i++){ // n+1
cin >> a[i]; // n
if (max < a[i]){ //1
max=a[i]; //1
max_index = i; //1
}
if (min > a[i]){ // 1
min=a[i]; // 1
min_index = i; //1
}
}
swap(a[min_index], a[max_index]); // 1
return 0;
}
29. Nol va birlardan iborat a1,a2,…,an ketma-ketliklar berilgan. Bu ketma-ketliklarning boshiga nollarni, keyin birlarni qo’ying.
#include
using namespace std;
int main(){
long n, i, j;
cin >> n;
long a[n];
for (i = 1; i <= n; i++)
cin >> a[i];
for (i = 1; i < n; i++)
for (j = i + 1; j <= n; j++)
{
if (a[i] > a[j])
{
a[0] = a[i];
a[i] = a[j];
a[j] = a[0];
}
}
for (i = 1; i <= n; i++)
cout << a[i] << " ";
return 0;
}
30. Butun sonli massivning quyidagi shartni qanoatlantiruvchi elementlarini o’chiring: 2 ga bo’lganda qoldig’i 3 ga teng. Agar bunday elementlar yo’q bo’lsa, “O’chirish uchun elementlar topilmadi” degan xabar berilsin.
#include
using namespace std;
int main(){
long n, i, j;
cin >> n;
long a[n];
for (i = 1; i <= n; i++)
cin >> a[i];
cout<<"O’chirish uchun elementlar topilmadi";
return 0;
}
Izoh: sonni 2ga qoldiqli bo’lganda 3 qoldiq qolishi mumkin emas
31. 100 ta butun sondan iborat massiv berilgan. Bu massivda quyidagicha uchraydigan barcha sonlar qiymatini chiqaring:
a) bir necha marta;
b) faqat bir marta.
#include
using namespace std;
int main(){
int a[100];
for (int i = 0; i < 100; i++){ //101
cin >> a[i]; // 100
}
// a-qism
for (int i = 0; i < 100; i++){
for (int j = 0; j < 100; j++){
if (a[i] == a[j]){
cout << a[i] << " ";
break;
}}}
cout << "\n\n";
// b-qism
bool t=true;
for (int i = 0; i < 100; i++){
for (int j= 0; j < 100; j++){
if (a[i] == a[j]){
t = false;
break;
} }
if (t) cout << a[i] << " ";
} return 0;
}
32.Sizga bir o’lchamli butun sonlardan iborat massiv berilgan.Sizning vazifangiz bu massiv elementlarini modullari jihatdan kamaymaslik tartibida saralaydigan dastur tuzish.Agar modul jihatdan teng musbat va manfiy sonlar mavjud bo’lsa manfiy son oldinroq joylashtirilsin:Masalan:9 8 -9 2 -4 3>>>2 3 -4 8 -9 9;
#include
using namespace std;
int main()
{ int k=12;
Srand(time(NULL));
Int A[k], k1=k, k2=k1;
for(int i=0; i{A[i]=rand()%10;if(i%4==0)
A[i]=-A[i];cout<<” ”<if(i%4==0 cout<<”\n”;
}bool b=true;
While(b) {
b=false;
for(int i=0; i+1{if(fabs(A[i])>fabs(A[i+1]))
{swap(A[i] ,A[i+1]);b=true;}}k--;}
bool a=true;
while(a)
{a=false;
for(int i=0;i+1{if(fabsA[i])==fabs(A[i+1]))
{ifA[i]>=A[i+1])swap(A[i],A[i+1]);a=true;
}} k2--;}cout<<”\=============”<for(int i=0; ireturn0;
}
-4
9 5 4 -4
2 5 0 -1
1 6 4
===========
0 -1 1 2 -4 -4
4 4 5 5 6 9
33 Berilgan son Armstrong soni deyiladi, agar uning raqamlari yig’indisini n-darajaga ko’targanda shu sonning o’ziga teng bo’lsa. 1 dan k gacha bo’lgan barcha Armstrong sonlarini toping. Masalan, 512 soni Armstrong soni hisoblanadi. 5+1+2 = 8. 8ning 3-darajasi 512 ga teng.
34 Agar ikkita tub sonlar bir-biridan ikkiga farq qilsa, ular “egizaklar” deyiladi. Masalan, 41 va 43. Barcha 10000 dan oshmaydigan egizak tub sonlar juftliklarini topuvchi funksiyani yozing
35 Massivning barcha tub son bo’lgan elementlarini yangi massivga yozing. Yangi massivni dinamik ravishda e’lon qilib ishlating
37 Tasodifiy sonlar funksiyasi yordamida tuzilgan ikkita tartiblangan bir o‘lchovli massivlarda o‘xshash elementlarning sonini aniqlang. (Massivni tasodifiy sonlar funksiyasi yordamida tuzish, kamayish bo‘yicha tartiblash, so‘ngra esa solishtirish kerak).
41.Raqamlari qat’iy o’sish ketma-ketligida joylashgan n qiymatli barcha natural sonlarni toping (1234, 1278, 5678)
Do'stlaringiz bilan baham: |