{const int M=100;
int A[M]; int s,i;
clrscr();
randomize();
for(i=0;i
{A[i]=random(100)-50;
printf("%4d",A[i]);
}
s=0;
for(i=0;i
{if (A[i]>0)
s+=A[i];
}
printf("\n%d",s);
}
5-мысал
Х(х
1
,х
2
,....х
40
) массивінің ең кіші элементін және оның реттік нөмірін анықтау керек.
Шешімі.
М арқылы массивтің ең кіші элементін белгілейік. Массивтің бірінші
элементін ең кіші элемент
ретінде алайық, яғни М=х
1
. Онда ең кіші элементтің нөмірін сақтап отыратын К айнымалысына 1
меншіктеледі, яғни К=1. Алғашқы элементтің мәнін өзімен салыстырудың ешқандай мағынасы жоқ
болғандықтан, М айнымалысының мәнін массивтің екінші элементінен бастап
қалған барлық элементімен
салыстырып шығу керек: егер М мәні салыстырған элемент мәнінен үлкен болса М-нің мәнін сол элемент
мәнімен ауыстырып (яғни салыстырылып тұрған элемент М-нен кіші), К
айнымалысына оның индексін
меншіктеу керек, кері жағдайда М, К шамаларын өзгеріссіз қалдыру керек. Бұл әрекет қайталау құбылысы
арқылы іске асырылады. Алгоритм-күрделі: қайталану құрамына тармақталу құбылысы еніп тұр.
Си тіліндегі программасы:
# include
# include
# include
# include
void main ( )
{const int M=40;
int A[M]; int min,k,i;
clrscr();
randomize();
for(i=0;i{A[i]=random(100)-50;
printf("%4d",A[i]);
}
min =A[0];
k=1;
for(i=1;i{if (A[i]< min)
{ min =A[i];
k=i;
}
}
printf("\n%d %d", min,k+1);
}
Достарыңызбен бөлісу: