1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
| Почему программа при попытке сравнить длины строк выдает segmentation fault?
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int max(int x,int y){
int max;
if(x>y) max=x;
else max=y;
return max;
}
float max(float x,float y){
float max;
if(x>y) max=x;
else max=y;
return max;
}
string max(string x,string y){ // <---
string max;
if(x.length()>y.length()) max=x;
else max=y;
return max;
}
int max(vector<int>vec){
int i,j,max;
for(i=0;i<vec.size()-1;i++)
for(j=1;j<vec.size();i++)
if (vec[i]>vec[j])
max=vec[i];
else max=vec[j];
return max;
}
string max(vector<string>vec){
int i,j;
string max;
for(i=0;i<vec.size()-1;i++)
for(j=1;j<vec.size();i++)
if (vec[i]>vec[j])
max=vec[i];
else max=vec[j];
return max;
}
int max(int* array,int size){
int i,j,max;
for (i=0;i<size-1;i++)
for (j=1;i<size;i++)
if (array[i]>array[j])
max=array[i];
else max=array[j];
return max;
}
string max(string* array,int size){
int i,j;
string max;
for(i=0;i<size-1;i++)
for(j=1;j<size;j++)
if(array[i]>array[j])
max=array[i];
else max=array[j];
return max;
}
int main(){
int a,b;
cout<<" Введите 2 целых числа ";
cin >> a >> b;
cout << max(a,b);
float x,y;
cout<< " Введите 2 числа с плавающей точкой ";
cin >> x>>y;
cout << max(x,y);
string s1,s2; // <---
cout << " Введите 2 слова ";
cin >> s1 >> s2;
cout << max(s1,s2);
vector <int> vec;
int i=0;
cout << "Введите вектор целых чисел";
while(vec[i]!='\n'){
cin >> vec[i];
i++;
}
cout << max(vec);
vector <string> vec_str;
int j;
cout<< "Введите вектор строк";
while ((vec_str[j])!="\n"){
cin >> vec_str[j];
j++;
}
cout << max(vec_str);
int size;
cout<< "Введите размер массива целых чисел";
cin >> size;
int array[size];
cout<<"Введите массив целых чисел";
for(int i=0;i<size;i++)
cin>>array[i];
max(array,size);
int size_str;
cout<< "Введите размер массива строк";
cin>> size_str;
string array_str[size_str];
int k;
cout<< "Введите массив строк";
for(k=0;k<size_str;k++)
cin >> array_str[size_str];
max(array_str,size_str);
return 0;
} |