Задачи С++ (первый курс). Одномерные массивы. 81- 100 задача.


4-081.cpp
<———————————————————————->
//najti v massive nomera srednestatisticheskogo i unikal’nogo elementov

#include <conio.h>
#include <math.h>
#include <stdio.h>

#define n 10


void main()

{
clrscr();
float a[n],sred=0,max,min;
int i,stat,unik;
for(i=0;i<n;i++)
{
printf(«A[%i]> «,i+1);
scanf(«%f»,&a[i]);
}
for(i=0;i<n;i++)
sred+=a[i];
sred/=(float)n;
for(i=0;i<n;i++)
if(abs(a[i]-sred)<min)
stat=i+1;
else
if(abs(a[i]-sred)>max)
unik=i+1;
printf(«\nSrednestaticheskij — A[%i]=%.2f\nUnikal’nyj — A[%i]=%.2f»,stat,a[stat],unik,a[unik]);
getch();
}
4-082.cpp
<———————————————————————->
//najti naibol’shij element massiva K[n], ne imeyuschij sebe ravnyh v massive N[m]

#include <conio.h>
#include <stdio.h>
#define n 10
#define m 10
void main()

{
clrscr();
int K[n],N[m],i,j,max,f,X=0;
for(i=0;i<n;i++)
{
printf(«K[%i]> «,i+1);
scanf(«%i»,&K[i]);
}
for(j=0;j<n;j++)
{
printf(«N[%i]> «,j+1);
scanf(«%i»,&N[j]);
}
max=K[0];
for(i=0;i<n;i++)
if(K[i]>max)
{
f=1;
for(j=0;j<n;j++)
if(K[i]==N[j])
f=0;
if(f)
{
max=K[i];
X=i;
}
}
printf(«\nIskomyj element — K[%i]=%i»,X+1,K[X]);
getch();
}

4-083.cpp
<———————————————————————->
//najti v massive samuyu dlinnuyu monotonno vozrastayuschyuyu posledovatel’nost’

#include <conio.h>
#include <stdio.h>
#define n 15
void main()

{
clrscr();
int A[n],i,j,k,K=0,a;
for(i=0;i<n;i++)
{
printf(«A[%i]> «,i+1);
scanf(«%i»,&A[i]);
}
for(i=0;i<n;i++)
{
k=0;
for(j=i+1;A[j]>=A[j-1]&&j<n;j++)
k++;
if(k>K)
{
K=k+1;
a=i+1;
}
}
printf(«\nNachalo posledovatel’nosti: A[%i], dlina — %i»,a,K);
getch();
}
4-084.cpp
<———————————————————————->
//najti vse chisla, vstrechayuschiesya v massive rovno dva raza

#include <conio.h>
#include <stdio.h>
#define n 10
void main()

{
clrscr();
int a[n],i,j,k;
for(i=0;i<n;i++)
scanf(«%i»,&a[i]);
for(i=0;i<n;i++)
{
k=0;
for(j=0;j<n;j++)
if(a[i]==a[j])
k++;
if(k==2)
printf(«\n%i»,a[i]);
}
getch();
}
4-085.cpp
<———————————————————————->
//poluchit’ novyj massiv deleniem kazhdogo elementa ishodnogo na minimal’nyj element

#include <conio.h>
#include <stdio.h>
#define n 10
void main()

{
clrscr();
float a[n],min,b[n];
int i;
for(i=0;i<n;i++)
{
printf(«A[%i]> «,i+1);
scanf(«%f»,&a[i]);
}
min=a[0];
for(i=0;i<n;i++)
if(a[i]<min)
min=a[i];
for(i=0;i<n;i++)
{
b[i]=a[i]/min;
printf(«\nB[%i]=%.2f»,i+1,b[i]);
}
getch();
}
4-086.cpp
<———————————————————————->
//najti v massive samuyu dlinnuyu posledovatel’nost’, yavlyayuschyuyusya arifmeticheskoj ili geometricheskoj progressiej

#include <conio.h>
#include <stdio.h>
#define n 15
void main()

{
clrscr();
float a[n],q;
int i,j,k,A,G,arifm,geom;
for(i=0;i<n;i++)
{
printf(«A[%i]> «,i+1);
scanf(«%i»,&a[i]);
}
for(i=1;i<n;i++)
{
q=a[i]-a[i-1];
k=2;
for(j=i+1;(a[j]-a[j-1]==q)&&j<n;j++)
k++;
if(k>arifm)
{
arifm=k;
A=i;
}
}
printf(«\nSamaya dlinnaya arifmeticheskaya progressiya — nachalo: A[%i], dlina: %i»,A,arifm);
for(i=1;i<n;i++)
{
q=a[i]/a[i-1];
k=2;
for(j=i+1;(a[j]/a[j-1]==q)&&j<n;j++)
k++;
if(k>geom)
{
geom=k;
G=i;
}
}
printf(«Samaya dlinnaya geometricheskaya progressiya — nachalo: A[%i], dlina: %i»,G,geom);
getch();
}
4-089.cpp
<———————————————————————->
//v massive neotritsatel’nyh chisel najti indeks elementa, dlya kotorogo summa
//stoyaschih pered nim elementov naimenee otlichaetsya ot summy stoyaschih posle nego

#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <values.h>
#define n 15
void main()

{
clrscr();
int a[n],i,j,Index;
float s1,s2,D=MAXFLOAT;
for(i=0;i<n;i++)
{
printf(«A[%i]> «,i+1);
scanf(«%i»,&a[i]);
}
for(i=0;i<n;i++)
{
s1=0;
s2=0;
for(j=0;j<i;j++)
s1+=a[j];
for(j=i+1;j<n;j++)
s2+=a[j];
if(abs(s1-s2)<D)
{
Index=i;
D=abs(s1-s2);
}
}
printf(«\nA[%i]= — iskomyj element»,Index+1,);
getch();
}

4-090.cpp
<———————————————————————->
//chisliteli i znamenateli drobej zadany dvumya tselochislennymi massivami
//najti naibol’shuyu drob’, zadannuyu etimi massivami

#include <conio.h>
#include <stdio.h>
#define n 50
void main()

{
clrscr();
int a[n],b[n],i,p;
float m=-1e37;
printf(«Vvedite chisliteli i znamenateli %i drobej\n»,n);
for(i=0;i<n;i++)
{
printf(«N%i> «,i+1);
scanf(«%i%i»,&a[i],&b[i]);
if(((float)a[i]/b[i])>m)
{
m=(float)a[i]/b[i];
p=i;
}
}
printf(«Naibol’shaya drob’ — N%i (%.3f)»,p,m);
getch();
}

4-091.cpp
<———————————————————————->
//v neuporyadochennom massive est’ sovpadayuschie elementy
//ostavit’ tol’ko odin iz kazhdoj gruppy sovpadayuschih elementov

#include <conio.h>
#include <stdio.h>
#define size 30
void main()

{
clrscr();
int a[size],b[size],i,j,k=0,f;
for(i=0;i<size;i++)
{
printf(«A[%i]> «,i);
scanf(«%i»,&a[i]);
}
for(i=0;i<size;i++)
{
f=1;
for(j=0;j<size;j++)
if(a[i]==b[j])
f=0;
if(f)
{
b[k]=a[i];
k++;
}
}
printf(«\nRezul’tat\n»);
for(i=0;i<k;i++)
printf(«A[%i]=%i\n»,i,b[i]);
getch();
}
4-092.cpp
<———————————————————————->
//preobrazovat’ uporyadochennyj po nevozrastaniyu massiv v uporyadochennyj po vozrastaniyu,
//ostaviv tol’ko odin v kazhdoj gruppe sovpadayuschih elementov

#include <conio.h>
#include <stdio.h>
#define n 20
void main()

{
clrscr();
int a[n],b[n],i,k=0;
for(i=0;i<n;i++)
{
printf(«A[%i]> «,i);
scanf(«%i»,&a[i]);
}
for(i=0;i<n-1;i++)
if(a[i]!=a[i+1])
{
b[k]=a[i];
k++;
}
if(a[i+1]!=b[k-1])
{
b[k]=a[i];
k++;
}
for(i=0;i<k;i++)
printf(«\nB[%i]=%i»,i,b[i]);
getch();
}

4-093.cpp
<———————————————————————->
//dany dva uporyadochennyh po ubyvaniyu massiva W[n] i G[m]
//poluchit’ iz nih uporyadochennyj po ubyvaniyu massiv C
//sovpadayuschie elementy vstavlyat’ edinozhdy

#include <conio.h>
#include <stdio.h>
#define size 30
void main()

{
clrscr();
int W[size],G[size],C[size*2],n,m,indW,indG,indC;
printf(«\nW[n]\nVvedite kolichestvo elementov: «);
scanf(«%i»,&n);
for(indW=0;indW<n;indW++)
{
printf(«W[%i]> «,indW);
scanf(«%i»,&W[indW]);
}
printf(«\nG[m]\nVvedite kolichestvo elementov: «);
scanf(«%i»,&m);
for(indG=0;indG<m;indG++)
{
printf(«G[%i]> «,indG);
scanf(«%i»,&G[indG]);
}
indW=0;
indG=0;
for(indC=0;indW<n&&indG<m;indC++)
{

}
printf(«\nC[%i]:\n»,indC);
for(i=0;i<indC;i++)
printf(«C[%i]=%i»,i,c[i]);
getch();
}

4-095.cpp
<———————————————————————->
//vosstanovit’ ishodnoe sostoyanie massiva A s elementami, peremeshannymi sluchajnym obrazom
//po massivu K, soderzhaschemu nomera pozitsij, kotorye zanimali sootvetstvuyuschie elementy A

#include <conio.h>
#include <stdio.h>
#define size 30
void main()

{
clrscr();
int a[size],k[size],i,t;
printf(«Vvedite massiv A i iznachal’nye pozitsii kazhdogo elementa\n»);
for(i=0;i<size;i++)
{
printf(«A[%i], K[%i]> «,i,i);
scanf(«%i%i»,&a[i],k[i]);
}
for(i=0;i<size;i++)
{
t=a[k[i]];
a[k[i]]=a[i];
a[i]=t;
}
printf(«Rezul’tat:\n»);
for(i=0;i<size;i++)
printf(«A[%i]=%i»,i,a[i]);
getch();
}

4-096.cpp
<———————————————————————->
//perenesti v nachalo massiva vse otritsatel’nye elementy, zateem nulevye
//i v kontse otritsatel’nye (poryadok sledovaniya v kazhdoj gruppe sohranit’)

#include <conio.h>
#include <stdio.h>
#define size 30
void main()

{
clrscr();
int a[size],i,t,p=0;
for(i=0;i<size;i++)
{
printf(«A[%i]> «,i);
scanf(«%i»,&a[i]);
}
for(i=0;i<size;i++)
if(a[i]<0)
{
t=a[i];
a[i]=a[p];
a[p]=t;
p++;
}
for(i=0;i<size;i++)
if(a[i]==0)
{
t=a[i];
a[i]=a[p];
a[p]=t;
p++;
}
printf(«Rezul’tat:\n»);
for(i=0;i<size;i++)
printf(«A[%i]=%i\n»,i,a[i]);
getch();
}
4-097.cpp
<———————————————————————->
//najti v tselochislennom massive chislo cheredovanij znaka (s ‘+’ na ‘-‘ i naoborot)

#include <conio.h>
#include <stdio.h>
#define size 20
void main()

{
clrscr();
int a[size],i,k=0;
printf(«Vvedite %i tselyh chisel\n»,size);
for(i=0;i<size;i++)
scanf(«%i»,&a[i]);
for(i=1;i<size;i++)
{
if((a[i]==0&&a[i-1]!=0)||(a[i]<0&&a[i-1]>0)||(a[i]>0&&a[i-1]<0))
k++;
}
printf(«V massive %i cheredovanij znaka»,k);
getch();
}

4-098.cpp
<———————————————————————->
//poluchit’ novyj massiv umnozheniem kazhdogo elementa ishodnogo massiva na minimal’nyj

#include <conio.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#define n 50
void main()

{
clrscr();
randomize();
unsigned a[n],i,min=4294967296;
float b[n];
printf(«Ishodnyj massiv:\n»);
for(i=0;i<n;i++)
{
a[i]=random(4294967296);
printf(«A[%u]=%u\n»,i,a[i]);
if(a[i]<min)
min=a[i];
}
printf(«Rezul’tat:\n»);
for(i=0;i<n;i++)
{
b[i]=a[i]*min;
printf(«B[%i]=%.0f\n»,i,b[i]);
}
getch();
}

4-099.cpp
<———————————————————————->
//kazhdyj tretij element zamenit’ polusummoj dvuh predyduschih,
//a stoyaschij pered nim — polusummoj sosednih elementov

#include <conio.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#define size 50
void main()

{
clrscr();
randomize();
unsigned a[size],i;
printf(«Ishodnyj massiv:\n»);
for(i=0;i<size;i++)
{
a[i]=random(4294967296);
printf(«A[%u]=%u\n»,i,a[i]);
}
printf(«Rezul’tat:\n»);
for(i=2;i<size;i+=3)
{
a[i]=a[i-2]+a[i-1];
a[i-1]=a[i]+a[i-2];
printf(«A[%i]=%i\nA[%i]=%i\nA[%i]=%i\n»,i-2,a[i-2],i-1,a[i-1],i,a[i]);
}
getch();
}

4-100.cpp
<———————————————————————->
//chisliteli i znamenateli drobej zadany dvumya tselochislennymi massivami
//najti naibol’shuyu drob’, zadannuyu etimi massivami

#include <conio.h>
#include <stdio.h>
#define size 20
void main()

{
clrscr();
int a[size],b[size],i,p;
float m=-1e37;
printf(«Vvedite chisliteli i znamenateli %i drobej\n»,size);
for(i=0;i<size;i++)
{
printf(«N%i> «,i+1);
scanf(«%i%i»,&a[i],&b[i]);
if(((float)a[i]/b[i])>m)
{
m=(float)a[i]/b[i];
p=i;
}
}
printf(«Naibol’shaya drob’ — N%i (%.3f)»,p,m);
getch();
}