چاپ اسامی در خروجی بصورت مرتب - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

چاپ اسامی در خروجی بصورت مرتب

0 امتیاز

من برای برنامه زیر،کدی نوشتم که متاسفانه خطا میدهد

برنامه اي بنویسید که 10 نام را از کاربر دریافت نماید آن ها را به صورت مرتب در خروجی چاپ نماید.

ممنون میشوم راهنمایی بفرمایید که مشکل را برطرف نمایم

#include<iostream>
#include<string>
using namespace std;

void sort(string[ ],int L);
void main()
{
	string s;
	for(int i=0;i<10;i++)
	{
		cout<<"Enter name";
		cin>>s;
	}
cout<<sort(s);
{
void sort(string[],int L)
{
	for(int i=L-2;i>=0;i--)
	{
		for(int j=0;j<=i;j++)
		{
		int r;
		r=st[j].compare(st[j+1]);
		if(r>0)
		st[j].swap(st[j+1]);
		}
	}
}

 

سوال شده اسفند 5, 1392  بوسیله ی ferry_2020 (امتیاز 25)   3 3 4

3 پاسخ

+2 امتیاز
 
بهترین پاسخ

1-در مرحله گرفتن استرینگ ها از کاربر، شما دائما دارین همه رو داخل یک متغیر میریزین که باعث میشه مقادر قبلی اون رشته از بین بره و باید ارایه ای از رشته ها تعریف بشه

string s[10] ;
for ( int i = 0 ; i<10 :i++ )
{
      cout << "enter name" ;
      cin >> s[i] ;
}

2-در شکل ارجاع دادن به تابع هم باید دقیقا پارامتر های مورد نیاز رو بهش بدین

3-از تابع swap هم به شکل زیر باید تغییر کنه

swap(st[j+1] ,st[j]);

4-تعریف تابع هم اسم رشته ورودی رو کم داره

پاسخ داده شده اسفند 6, 1392 بوسیله ی Elyas74 (امتیاز 1,144)   6 14 27
انتخاب شد اسفند 25, 1392 بوسیله ی BlueBlade
و همونجور که PSPcoder گفتن باید مقادیر آرایه ات رو تک تک چاپ کنی و این تابع خروجی نداره ولی تغییراتی که در تابع روی آرایه میدی اعمال میشه
+1 امتیاز
دوست عزیز من نمی دونم از چه کامپایلری استفاده می کنی ولی اون void main اشتباهه باید int باشه

وقتی که خروجی sort از نوع void هست واضحه که با cout کار نمی کنه

بعد این که شما 10 تا اسم می خونی همرو میریزی داخل s نهایتا هم همون s آخر رو sort می کنی sort رو بزار داخل for

, و این که اون compare , swap که توی sort استفاده کردی رو کجا تعریف کردی ؟
پاسخ داده شده اسفند 6, 1392 بوسیله ی PSPCoder (امتیاز 1,301)   14 40 57
+2 امتیاز

همین مشکلایی که دوستان گفتن رو داره 

تصحیح شدش رو میتونید انجا ببینید : http://paste.ubuntu.com/6995836/

پاسخ داده شده اسفند 6, 1392 بوسیله ی amirhossein (امتیاز 119)   2
...