PDA

View Full Version : کمک!!!!(درخواست برنامه)



girl36
دوشنبه 19 آذر 1386, 22:09 عصر
سلام
من یه برنامه میخوام که یه ماتریس
n*n
بگیره و به صورت سطری و صعودی چاپش کنه.

alinaghiha
دوشنبه 19 آذر 1386, 22:27 عصر
اینجا کسی برنامه نمی ده
اما راه حل ارائه می شه
راه حل:
شما میتونید یک متغییردر نظر بگیرید که از 0 شروع بشه و تا n^2-1 منظورم N به توان دو منهای یکه زیاد کنی حالا این عدد تقسیم صحیح به n میشه سطر و باقیمانده این تقسیم میشه ستون
حالا دو با این دید دو تا حلقه بساز و مرتب سازی حبابی رو انجام بده
موفق باشی

girl36
سه شنبه 20 آذر 1386, 20:21 عصر
خیلی خیلی ممنون

alinaghiha
سه شنبه 20 آذر 1386, 23:27 عصر
مشکلتون حل شد انشاله
اگه خواستی میتونی نمونه کدتو بذاری ایراداشو باهم بگیریم
موفق باشی

girl36
پنج شنبه 22 آذر 1386, 18:58 عصر
#include<iostream.h>
main()
{
int x[100][100];
int m,n,t,i=0;
cout<<"Enter m,n:";
cin>>m>>n;
while(i<m)
{
int j=0;
while(j<n)
{
if(x[i][j]>x[i][j+1])
t=x[i][j+1];
x[i][j+1]=x[i][j];
x[i][j]=t;
}j++;
if(j=n-1)
j=0;
i++;
}
}

girl36
پنج شنبه 22 آذر 1386, 19:02 عصر
#include<iostream.h>
main()
{
int x[100][100];
int m,n,t,i=0;
cout<<"Enter m,n:";
cin>>m>>n;
while(i<m)
{
int j=0;
while(j<n)
{
if(x[i][j]>x[i][j+1])
t=x[i][j+1];
x[i][j+1]=x[i][j];
x[i][j]=t;
}j++;
if(j=n-1)
j=0;
i++;
}
}

girl36
پنج شنبه 22 آذر 1386, 19:15 عصر
mamnon
vali vaghty ino ham minvisam error mide:


#include<iostream.h>
main()
{
int x[100][100];
int m,n,t,i=0;
cout<<"Enter m,n:";
cin>>m>>n;
for(i=0;i<n;i++)
{
for(int j=0;j<i;j++)
{
if(x[i][j]>x[i][j+1])
t=x[i][j+1];
x[i][j+1]=x[i][j];
x[i][j]=t;
}
}
}

emad_67
پنج شنبه 22 آذر 1386, 19:21 عصر
syntax ارور که نداره ولی این برنامه اجرا نمیشه چون آرایه شما اصلا مقداری داخلش نیست. شما اول باید مقادیر رو در آرایه قرار بدی بعد اونو مرتب کنی.

girl36
پنج شنبه 22 آذر 1386, 19:21 عصر
من
میخوام لیست مرتب شده و صعودی رو به صورت یه آرایه یک بعدی چاپ کنه.
(ببخشید من خیلی تازه کارم)

girl36
پنج شنبه 22 آذر 1386, 19:25 عصر
چجوری مقدار داخلش بدم؟

emad_67
پنج شنبه 22 آذر 1386, 19:56 عصر
ببخشید من یه مقدار اشتباه کردم به همین خاطر پست قبلیمو پاک کردم.
شما برای اینکه یه آرایه 2 بعدی رو به صورت یه آرایه 1 بعدی صعودی نشون بدی بهتره که یه آرایه دومی به طول n*n بسازی و آرایه اول رو بریزی در داخل اون و بعد اونو مرتب کنی.

چجوری مقدار داخلش بدم؟
اینجوری بنویس


for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cin>>x[i][j];
}
}

emad_67
پنج شنبه 22 آذر 1386, 20:19 عصر
البته میتونی از آرایه دوم هم استفاده نکنی و با همون آرایه 2 بعدی به صورت 1 بعدی رفتار کنی ولی یه مقدار غیر منطقی هست.


for(i=0;i<n*n;i++)
{
for(int j=0;j<n*n-1;j++)
{
if(x[0][j]>x[0][j+1])
{
t=x[0][j+1];
x[0][j+1]=x[0][j];
x[0][j]=t;
}
}
}