Мазмұнға өту
Обложка сообщества Разное

С++ тіліндегі есептер

а1...аn накты сандар берилген.а1...аn тизбегиндеги киши элементти барлык элементтердин арифметикалык ортасынын бутин болигимен ауыстырыныз.Баска элементтерин озгерпениз Егер тизбекте бирнеше min(а1...аn)элементтерин болса,онда реттеги ен сонгысын 0 ге ауыстырыныз

Әр адам программаны әр түрлі жазады(мен өзім программаны қысқа жазғанды жақсы көрем). Ең бастысы программа логикалық түрде дұрыс болу керек.

Мына есепте минимальды массивтин элементин аныктап аламыз , содан ұқсас минимальды элементтерди санын анықтап аламыз да, шарт жасаймыз  егер минимальды элемент болса массивтің барлық элементтерін қосып оны массивтің өлшеміне бөлеміз(біздің есепте 5-ке), әйтпесе минимальды элементке нөлді меншіктейміз.

#include <stdio.h> //standart input output кітапханасы
#include <conio.h> //getch() функциясы клавиатураны басканша программа корсетилип турады
#define n 5 // массивтің өлшемі
void main(){ // с++ аркашанда main() функциясында программа орындалады 
int a[n]; // бес өлшемди массив a[5]
int i;
int min;
int k=0;
int s=0;
double sred;
int temp;

printf("\nMassivti engizinin \n");

for(i=0;i<n;i++)
scanf("%i",&a[i]); //массивтерді клавиатурдан енгізу

min=0;
for(i=1;i<n;i++)
if(a[i]<=a[min]) min=i; //минимальды массивтин элементин аныктап аламыз

for(i=0;i<n;i++){
if(a[i]==a[min]) k++; //минимальды элементтің санын анықтаймыз
}
printf("Minimaldi elementer sani k=%i\n",k);
printf("Minimaldi massiv a[%i]=%i\n",min,a[min]);

if(k==1){
for(i=0;i<n;i++) s=s+a[i];
sred=double(s)/double(n);
printf("Arifmetikalik ortasi %f\n ",sred);
temp=int(sred);
a[min]=sred; // арифметикалык ортасымен орыннын ауыстырамыз
sred=temp;

for(i=0;i<n;i++)
printf("%i ",a[i]);

}
else {
a[min]=0;
for(i=0;i<n;i++) //минималдь элменттердің сонгы элементін нөлге меншіктейміз
printf("%i ",a[i]);
}

getch();
}

Осы тақырып бойынша

С++ тіліндегі есептер - Yvision.kz