Итак, во время практики строк я наткнулся на вопрос, который дал мне «n» строк и попросил выводить строки в возрастающем алфавитном порядке.
Пример:
Input>>
4 // number of string
abcdef ghi // string 1
ccdef // string 2
bcdcas // string 3
xcxvb // string 4
vxzxz // string 5
Этобудет выводить только строки 1,2,4, потому что мы должны печатать строку в возрастающем алфавитном порядке.
строка 1 <строка 2 <строка 4. <br>(строка 3 меньше строки 2 и, следовательно, вывод)
Итак, я закодировал проблему без использования строкового массива, и это сработало, но когда я применил тот же подход, результат был неправильным.
Возможно, я не знаю что-то о строковом массиве, что выребята, можете помочь мне.
Вот код для вас, ребята:
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
int n;
cin >> n;
string array[n];
cin.ignore();
for(int i=0; i<n;i++){
getline(cin , array[i]);
}
cout << array[0] << endl;
string maximum;
for(int i = 0; i<n; i++){
maximum = array[0];
if(array[i] > maximum){
maximum = array[i];
cout << maximum << endl;
}
}
}
Вот код, который работал без проблем:
using namespace std;
int main()
{
ios::sync_with_stdio(false);
int n;
cin >> n;
string text;
cin.ignore();
string max = "";
for(int i=0; i<n;i++){
getline(cin , text);
if(text>max){
max = text;
cout << text << endl;
}
}
}