По разделам

 

Решение задачи String 51


Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним пробелом и расположенные в алфавитном порядке.

Код (C/C++)

# include <iostream>
# include <windows.h>
# include <cmath>
# include <iomanip>
# include <fstream>

using namespace std;
const int M = 20;
const int N = 50;
int main()
{
   SetConsoleCP(1251);
   SetConsoleOutputCP(1251);
   
   int i,j;
   char words[M][N];   
   char str[M*N] = "";
   ifstream in ("String51.txt");
   in.getline(str,sizeof(str)); 
   cout << "Исходный набор слов:" << "\n";  
   cout << str << endl; 
        
   char* ptr; 
   ptr = strtok(str, " ,.");    
   int n = 0;         
   while(ptr!=NULL) 
   {          
	   strcpy(words[n], ptr);
	   ptr = strtok(NULL, " ,.");  
	   ++n;
          
   }   
    
   char cur[N] = ""; //Буфер
   
    for(i=0;i<n-1;++i) {
        for(j=i+1;j<n;++j)
            if(strcmp(words[i],words[j])>0)
            {   strcpy(cur,words[i]);
                strcpy(words[i],words[j]);
                strcpy(words[j],cur);
            }
    }
    
    cout << "\n";
    cout << "Набор слов в алфавитном порядке:" << "\n";
    char s[M*N] = "";
    strcat(s,words[0]);
    for(i=1;i<n;++i){
       strcat(s," ");
       strcat(s,words[i]);
    }
    cout << s << endl;

    system ("pause");
}

Код (Pascal)

program String51;
var
 S:String;
 SA : array [1..225] of String;
 i,i2,Len,Len2,poz:integer;
 
procedure SwapString(var S1,S2:String);
var
 STemp:String;
begin
 STemp:=S1;
 S1:=S2;
 S2:=STemp;
end;
 
 
Function CompareString(S1,S2:string):boolean;
begin
 if S10) do
   begin
    if poz=1 then delete(S,1,1);
    if poz>1 then
     begin
      inc(Len);
      SA[Len]:=copy(S,1,poz-1);
      Delete(S,1,poz);
     end;
    poz:=pos(' ',S);
   end;
  inc(Len);
  SA[Len]:=S;
//получился массив SA длинной len.
//сортирую массив
  Len2:=Len;
  for i:=1 to Len-1 do
   begin
    i2:=1;
    Len2:=Len2-1;
    while (i2<=Len2) do
     begin
      if not(CompareString(SA[i2],SA[i2+1])) then SwapString(SA[i2],SA[i2+1]);
      inc(i2);
     end;
   end;
//складываю массив в строку
  S:=SA[1];
  for i:=2 to Len do S:=S+' '+SA[i];
//вывожу массив
  Writeln(S);
end.
									




String. Абрамян
String 1 Просмотров: 6152
String 2 Просмотров: 4294
String 3 Просмотров: 2643
String 4 Просмотров: 3679
String 5 Просмотров: 4303
String 6 Просмотров: 4111
String 7 Просмотров: 2852
String 8 Просмотров: 3562
String 9 Просмотров: 2916
String 10 Просмотров: 3109
String 11 Просмотров: 3761
String 12 Просмотров: 3309
String 13 Просмотров: 3960
String 14 Просмотров: 2890
String 15 Просмотров: 3605
String 16 Просмотров: 3552
String 17 Просмотров: 2902
String 18 Просмотров: 2579
String 19 Просмотров: 3562
String 20 Просмотров: 2706
String 21 Просмотров: 2404
String 22 Просмотров: 2577
String 23 Просмотров: 3592
String 24 Просмотров: 2669
String 25 Просмотров: 1941
String 26 Просмотров: 3134
String 27 Просмотров: 2788
String 28 Просмотров: 2945
String 29 Просмотров: 3686
String 30 Просмотров: 2443
String 31 Просмотров: 2861
String 32 Просмотров: 2307
String 33 Просмотров: 1986
String 34 Просмотров: 1942
String 35 Просмотров: 1818
String 36 Просмотров: 1645
String 37 Просмотров: 1396
String 38 Просмотров: 1528
String 39 Просмотров: 1632
String 40 Просмотров: 1900
String 41 Просмотров: 1688
String 42 Просмотров: 3333
String 43 Просмотров: 1611
String 44 Просмотров: 1589
String 45 Просмотров: 2002
String 46 Просмотров: 1323
String 47 Просмотров: 1240
String 48 Просмотров: 1764
String 49 Просмотров: 1491
String 50 Просмотров: 1538
String 51 Просмотров: 1436
String 52 Просмотров: 1395
String 53 Просмотров: 1348
String 54 Просмотров: 1020
String 55 Просмотров: 1168
String 56 Просмотров: 988
String 57 Просмотров: 1612
String 58 Просмотров: 1706
String 59 Просмотров: 1501
String 60 Просмотров: 1362
String 61 Просмотров: 1111
String 62 Просмотров: 1175
String 63 Просмотров: 1511
String 64 Просмотров: 1357
String 65 Просмотров: 1286
String 66 Просмотров: 1350
String 67 Просмотров: 1103
String 68 Просмотров: 1343
String 69 Просмотров: 1192
String 70 Просмотров: 1897

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться



Заявка на расчет