PDA

View Full Version : مبتدی: مشکل اجرای برنامه transposدرcpp



nazanin2014
یک شنبه 04 فروردین 1392, 10:27 صبح
با سلام.من میخوام برنامه ای بنویسم که ترانهادهtransposآرایه رو محاسبه کنه.الان اینی که نوشتم runمیشه اما منو به جواب نمیرسونه.



خروجی:


1638204
1638204
1638204
1638204
1638204
ورودی: 3 2 1
6 5 4
9 8 7




#include<iostream>
using namespace std;
const int size=3;
void read(int a[size][size])
{
cout<<"baraye gereftane deraye"<<size*size<<"adad vared konid"<<size<<"radif vared konid"<<endl;
for(int i=0;i<size;i++){
cout<< "radif"<<i<<":";
for(int j=0;j<size;j++)
cin>>a[i][j];
}}
void trans(int at[size][size],int a[size][size])
{
int i,j;
int save;
for(int i=0;i<size;i++){
for(int j=0;j<size;j++){
a[i][j]=save;
at[j][i]=a[i][j];
at[j][i]=save;
cout<<save;
cout<<endl;
}}
}
int main()
{
int a[3][3],at[3][3];
read(a);
trans(a,at);
trans(a,at);
return 0;
}

UfnCod3r
یک شنبه 04 فروردین 1392, 16:06 عصر
با چه زبونی باید گفت که کد را در تگ سی ++ قرار دهید . ینی اینقدر سخته .
:عصبانی++:
:عصبانی++:
:عصبانی++:
:عصبانی++:

#include<iostream>
using namespace std;
const int size=3;
void read(int a[size][size])
{
cout<<"baraye gereftane deraye"<<size*size<<"adad vared konid"<<size<<"radif vared konid"<<endl;
for(int i=0;i<size;i++){
cout<< "radif"<<i<<":";
for(int j=0;j<size;j++)
cin>>a[i][j];
}
}

void trans(int at[size][size], int a[size][size])
{
int i,j;
for(int i=0;i<size;i++)
{
for(int j=0;j<size;j++)
{
at[i][j]=a[j][i];
cout<<at[i][j];
cout<<endl;
}
}
}

int main()
{
int a[3][3],at[3][3];
read(a);
trans(a,at);
trans(a,at);
return 0;
}

nazanin2014
یک شنبه 04 فروردین 1392, 19:12 عصر
حواسم نبود

مسعود اقدسی فام
پنج شنبه 08 فروردین 1392, 19:36 عصر
اول اینکه یه بار فراخوانی تابع کافیه. یعنی تابع باید طوری نوشته شه که با یه بار کار کنه. وقتی دو بار یه عمل ثابت رو تکرار می‌کنید چه انتظاری دارید کامل جواب بده؟

قسمت داخل حلقه هم اصلا درست نیست. جابجا کردن مقدار دو متغیر یا دو عنصر آرایه با استفاده از یه متغیر یا عنصر کمکی سوم باید انجام بشه. مثل اینکه برای عوض کردن محتوای دو لیوان مقدار یکی رو مستقیم ریختید توی اونیکی! خب چطور تفکیکش می‌کنید مجدد؟ باید یه لیوان سوم در کار باشه.

البته درسته که شما ترانهاده رو داخل یه ماتریس دیگه می‌ریزید، اما باز کد اون هم اشکال داره. شما a رو از کاربر می‌گیرید و بعد با اسم at همراه با یه ماتریس a که مقادیر عناصرش معلوم نیست به تابع ارسال می کنید. بعد مقادیر a رو داخل at می‌ریزید. سوای مشکل بالا اگه فرض کنیم کد درست کار کنه، انتظار دارید الان at (یا همون a تابع اصلی) که با a (یه ماتریس کمکی) پر شده مقادیر ترانهاده at رو نشون بده؟