farbehar1
شنبه 06 دی 1393, 00:24 صبح
با سلام خدمت دوستان گرامی
اگر امکانش هست بنده را راهنمایی بفرمایید که چگونه میتوان آرایه ای از ساختار ها را برحسب یکی از عناصر داخلی اش مرتب کرد؟
مثلا در قطعه کد زیر
#include <iostream>
using namespace std;
struct a
{
int num1;
char L[10];
};
int main()
{
a daneshju [3];
for ( int i=0;i<3;i++)
{
cin>>daneshju[i].num1;
cin>>daneshju[i].L;
}
//
bool swapped = true;
int j = 0;
int tmp;
while (swapped) {
swapped = false;
j++;
for (int i = 0; i < 3 - j; i++) {
if (daneshju[i].num1 > daneshju[i + 1].num1) {
tmp = daneshju[i].num1;
daneshju[i].num1 = daneshju[i + 1].num1;
daneshju[i + 1].num1 = tmp;
swapped = true;
}
}
}
for ( int i = 0; i < 3 ; i++) {
cout<<daneshju[i].num1<<"\t"<<daneshju[i].L<<"\n";
}
}
میخواهم ساختار a را بر حسب مقادیر num1 مرتب کنم و در انتها زمانی که چاپ میشود هر num1 با L مرتبط با خودش چاپ شود
در این کدی که من نوشته ام اگر ورودی ها
1
a
3
c
2
b
باشد ، اعداد مرتب میشوند اما کاراکتر ها در جای اولیه شان میمانند و ساختار بهم میریزد ، و خروجی این میشود :
1
a
2
c
3
b
در حالی که من خواهان این هستم که عدد و کاراکتری که با هم وارد شده اند در انتها با هم چاپ شوند.
پیشاپیش از پاسخ های شما سپاسگذارم.
اگر امکانش هست بنده را راهنمایی بفرمایید که چگونه میتوان آرایه ای از ساختار ها را برحسب یکی از عناصر داخلی اش مرتب کرد؟
مثلا در قطعه کد زیر
#include <iostream>
using namespace std;
struct a
{
int num1;
char L[10];
};
int main()
{
a daneshju [3];
for ( int i=0;i<3;i++)
{
cin>>daneshju[i].num1;
cin>>daneshju[i].L;
}
//
bool swapped = true;
int j = 0;
int tmp;
while (swapped) {
swapped = false;
j++;
for (int i = 0; i < 3 - j; i++) {
if (daneshju[i].num1 > daneshju[i + 1].num1) {
tmp = daneshju[i].num1;
daneshju[i].num1 = daneshju[i + 1].num1;
daneshju[i + 1].num1 = tmp;
swapped = true;
}
}
}
for ( int i = 0; i < 3 ; i++) {
cout<<daneshju[i].num1<<"\t"<<daneshju[i].L<<"\n";
}
}
میخواهم ساختار a را بر حسب مقادیر num1 مرتب کنم و در انتها زمانی که چاپ میشود هر num1 با L مرتبط با خودش چاپ شود
در این کدی که من نوشته ام اگر ورودی ها
1
a
3
c
2
b
باشد ، اعداد مرتب میشوند اما کاراکتر ها در جای اولیه شان میمانند و ساختار بهم میریزد ، و خروجی این میشود :
1
a
2
c
3
b
در حالی که من خواهان این هستم که عدد و کاراکتری که با هم وارد شده اند در انتها با هم چاپ شوند.
پیشاپیش از پاسخ های شما سپاسگذارم.