Нормализовать элементы вектора (найти максимум и разделить все элементы на максимум). элементы вектора вводятся с клавиатуры и хранятся в связанном списке. напишите код c++ с связного списка. я умею только с векторов, вот мой код через векторы на всякий случай: #include #include #include using namespace std; void main() {setlocale(0,"rus"); vector myvector(10); for(int i = 0; i < myvector.size(); i++) cin > > myvector[i]; double max=-1; for(int i = 0; i < myvector.size(); i++) if (myvector[i]> max) max=myvector[i]; cout< for(int i = 0; i < myvector.size(); i++) cout< < myvector[i]< < " "; cout< cout< for(int i = 0; i < myvector.size(); i++) { myvector[i]=myvector[i]/max; cout< < myvector[i]< < " "; } cout< system("pause"); } (библиотеки не отобразились почему-то, там иострим, вектор и стд.афикс )
using namespace std;
struct link
{
double data;
link* next;
};
link* first = NULL;
void additem(int d) // добавление элементов список
{
link* newlink = new link;
newlink->data = d;
newlink->next = first;
first = newlink;
}
void display() // вывод на экран
{
link* current = first;
while(current)
{
cout << current->data << " ";
current = current->next;
}
}
int max() // max
{
link* current = first;
int m=0;
while(current)
{
if (current->data > m) m = current->data;
current = current->next;
}
return m;
}
void norm(int m) // нормализация
{
link* current = first;
while(current)
{
current->data /= m;
current = current->next;
}
}
int main()
{
int n=10;
int a;
for (int i=1; i<n; i++) {
cin >> a;
additem(a);
}
display();
cout << endl << max() << endl;
norm(max());
display();
}
Пример:
64 45 19 42 83 38 71 23 52
83
0.771084 0.542169 0.228916 0.506024 1 0.457831 0.855422 0.277108 0.626506