77777778
سه شنبه 11 تیر 1392, 11:31 صبح
سلام دوستان عزیز
من کد زیر رو برای یک آرایه 3*3 نوشتم ولی نتونستم یک حالت کلی تعریف کنم که آرایه n*n رو بعنوان ورودی بگیره و 90 درجه بچرخونه
آرایه مفروض :
33 22 11
66 55 44
99 88 77
بعد از اعمال تابع :
11 44 77
22 55 88
33 66 99
int i,j;
void read2d(float a[][3])
{
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
a[i][j]=(rand()%90+10);
}
}
void print2d(float a[][3])
{
cout<<"\n";
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
cout<<"\t"<<a[i][j];
cout<<endl;
}
}
void rotat(float a[][3])
{
float t;
t=a[0][0];
a[0][0]=a[2][0];
a[2][0]=a[2][2];
a[2][2]=a[0][2];
a[0][2]=t;
t=a[0][1];
a[0][1]=a[1][0];
a[1][0]=a[2][1];
a[2][1]=a[1][2];
a[1][2]=t;
}
int main()
srand(time(NULL));
{float p[3][3];
read2d(p); //reads array's elements from user
cout<<"\n\n\n\nP : \n";
print2d(p);
print2d(p); //prints arrayes elements on screen
rotat(p);
cout<<"\n\n\n\nnew P : \n";
print2d(p);
getch();
print2d(p); //prints arrayes elements on screen
return 0;
}
حالا می خوام یه راه حل برام بگین که چطور این تابع ()rotat رو تعریف کنم تا بتونه هر آرایه ای رو که بصورت مربعی بهش ارسال می شه رو بعنوان ورودی بگیره و جای عناصرش رو تغییر بده
من کد زیر رو برای یک آرایه 3*3 نوشتم ولی نتونستم یک حالت کلی تعریف کنم که آرایه n*n رو بعنوان ورودی بگیره و 90 درجه بچرخونه
آرایه مفروض :
33 22 11
66 55 44
99 88 77
بعد از اعمال تابع :
11 44 77
22 55 88
33 66 99
int i,j;
void read2d(float a[][3])
{
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
a[i][j]=(rand()%90+10);
}
}
void print2d(float a[][3])
{
cout<<"\n";
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
cout<<"\t"<<a[i][j];
cout<<endl;
}
}
void rotat(float a[][3])
{
float t;
t=a[0][0];
a[0][0]=a[2][0];
a[2][0]=a[2][2];
a[2][2]=a[0][2];
a[0][2]=t;
t=a[0][1];
a[0][1]=a[1][0];
a[1][0]=a[2][1];
a[2][1]=a[1][2];
a[1][2]=t;
}
int main()
srand(time(NULL));
{float p[3][3];
read2d(p); //reads array's elements from user
cout<<"\n\n\n\nP : \n";
print2d(p);
print2d(p); //prints arrayes elements on screen
rotat(p);
cout<<"\n\n\n\nnew P : \n";
print2d(p);
getch();
print2d(p); //prints arrayes elements on screen
return 0;
}
حالا می خوام یه راه حل برام بگین که چطور این تابع ()rotat رو تعریف کنم تا بتونه هر آرایه ای رو که بصورت مربعی بهش ارسال می شه رو بعنوان ورودی بگیره و جای عناصرش رو تغییر بده