Код
# include <iostream.h>
# include <stdio.h>
# include <math.h>
# include <conio.h>
# include <alloc.h>
//-----------------------------------------------------------------
int Chislo(int x)
{
int j;
if (x<4) return 1;
else
{
for (j=2; j<ceil(sqrt(x))+1; j++)
if (x%j==0) return 0;
}
return 1;
}
//-----------------------------------------------------------------
void swap(int *p)
{
int t=p[0];
p[0]=p[1];
p[1]=t;
}
//-----------------------------------------------------------------
void sort1(int *mas1, int n)
{
int again,i;
do
{
again=0;
for(i=0;i<n-1;i++)
{
if(mas1[i]>mas1[i+1])
{
swap(mas1+i);
again=1;
}
}
}
while(again);
}
//-----------------------------------------------------------------
void sort2(int *mas2, int k)
{
int again,i;
do
{
again=0;
for(i=0;i<k-1;i++)
{
if(mas2[i]<mas2[i+1])
{
swap(mas2+i);
again=1;
}
}
}
while(again);
}
//-----------------------------------------------------------------
void main()
{
clrscr();
int t,k,i2,j,j2,i,n; j=0; k=0;
cout<<"n="; cin>>n;
int* mas1 = new int[n];
int* mas2 = new int[n];
cout<<"El-ma \n"<<"\n";
for (i=0; i<n; i++)
{
cin>>mas1[i];
}
for (i=0; i<n; i++)
{
cout<<"\nmas1["<<i<<"]="<<mas1[i];
}
cout<<"\n";
sort1(mas1,n);
for (i=0; i<n; i++)
{
cout<<"\nmas1["<<i<<"]="<<mas1[i];
}
cout<<"\n";
for (i=0; i<n; i++)
{
if (Chislo(mas1[i])==1) {mas2[j]=mas1[i]; j=j+1; k=k+1;}
}
for (j=0; j<k; j++)
{
cout<<"\nmas2["<<j<<"]="<<mas2[j];
}
cout<<"\n";
sort2(mas2,k);
for (j=0; j<k; j++)
{
cout<<"\nmas2["<<j<<"]="<<mas2[j];
}
delete []mas1;
delete []mas2;
getch();
}
# include <stdio.h>
# include <math.h>
# include <conio.h>
# include <alloc.h>
//-----------------------------------------------------------------
int Chislo(int x)
{
int j;
if (x<4) return 1;
else
{
for (j=2; j<ceil(sqrt(x))+1; j++)
if (x%j==0) return 0;
}
return 1;
}
//-----------------------------------------------------------------
void swap(int *p)
{
int t=p[0];
p[0]=p[1];
p[1]=t;
}
//-----------------------------------------------------------------
void sort1(int *mas1, int n)
{
int again,i;
do
{
again=0;
for(i=0;i<n-1;i++)
{
if(mas1[i]>mas1[i+1])
{
swap(mas1+i);
again=1;
}
}
}
while(again);
}
//-----------------------------------------------------------------
void sort2(int *mas2, int k)
{
int again,i;
do
{
again=0;
for(i=0;i<k-1;i++)
{
if(mas2[i]<mas2[i+1])
{
swap(mas2+i);
again=1;
}
}
}
while(again);
}
//-----------------------------------------------------------------
void main()
{
clrscr();
int t,k,i2,j,j2,i,n; j=0; k=0;
cout<<"n="; cin>>n;
int* mas1 = new int[n];
int* mas2 = new int[n];
cout<<"El-ma \n"<<"\n";
for (i=0; i<n; i++)
{
cin>>mas1[i];
}
for (i=0; i<n; i++)
{
cout<<"\nmas1["<<i<<"]="<<mas1[i];
}
cout<<"\n";
sort1(mas1,n);
for (i=0; i<n; i++)
{
cout<<"\nmas1["<<i<<"]="<<mas1[i];
}
cout<<"\n";
for (i=0; i<n; i++)
{
if (Chislo(mas1[i])==1) {mas2[j]=mas1[i]; j=j+1; k=k+1;}
}
for (j=0; j<k; j++)
{
cout<<"\nmas2["<<j<<"]="<<mas2[j];
}
cout<<"\n";
sort2(mas2,k);
for (j=0; j<k; j++)
{
cout<<"\nmas2["<<j<<"]="<<mas2[j];
}
delete []mas1;
delete []mas2;
getch();
}
Один вопрос
swap пишиться для экономии места и времени или нет?
что измениться если написать
Код
void sort1(int *mas1, int n)
{
int again,i,t;
do
{
again=0;
for(i=0;i<n-1;i++)
{
if(mas1[i]>mas1[i+1])
{
t=p[i];
p[i]=p[i+1];
p[i+1]=t;
again=1;
}
}
}
while(again);
}
{
int again,i,t;
do
{
again=0;
for(i=0;i<n-1;i++)
{
if(mas1[i]>mas1[i+1])
{
t=p[i];
p[i]=p[i+1];
p[i+1]=t;
again=1;
}
}
}
while(again);
}