#include <stdio.h>
int main()
{
int array[100], maximum, size, c, location = 1;
printf("Enter the number of elements in array\n");
scanf("%d", &size);
printf("Enter %d integers\n", size);
for (c = 0; c < size; c++) { // Введення масиву.
scanf("%d", &array[c]); // Записуємо введені дані в масив.
}
maximum = array[0]; // Припускаємо, що перший елемент - максимальний.
for (c = 1; c < size; c++) { // Порівнятимо з рештою.
if (array[c] > maximum) { // Якщо array[c] > maximum, тоді...
maximum = array[c]; // ...maximum = array[c].
location = c+1; // ...location - "локація" (номер) max-значення.
int temp = array[0]; // temp - "тимчасова" (допоміжна) zm-ka.
array[0] = maximum; // max-значення -> [0].
array[location-1] = temp; // [0] -> max-значення.
printf("Resultant array is\n"); // Виводимо "результуючий" (вiдсортований) masyv:
for (c = 0; c < size; c++) { // ...for-loop'om:
printf("%d\n", array[c]); // ...printf'om:
} // ...end of for-loop.
return 0; // KONIEC programu! :)
Відповідь:
#include<iostream>
#include<limits>
using namespace std;
class MyException:public std::exception{
public:
char* what(){
return "Incorrect input. Please, try again.\n";}
};
int CheckInput(std::string s){
int temp;
while(true){
try{
std::cout<<s;
if(!(std::cin>>temp)){
throw MyException();}
return temp;}
catch(MyException e){
std::cout<<e.what();
std::cin.clear();
std::cin.ignore(numeric_limits<streamsize>::max(), '\n');}
int main (){
int quantity=CheckInput("Input quantity of elements:\n");
int* array = new int[quantity];
for(int i=0;i<quantity;i++){
array[i] = CheckInput("Input "+std::to_string(i+1)+" element of array\n");
std::cout<<"Array before exchange:\n";
std::cout<<i<<" -> "<<array[i]<<std::endl;}
int max = array[0],index = 0;
for(int i=1;i<quantity;i++){
if(max<array[i]){
max = array[i];
index = i;}}
std::swap(array[0],array[index]);
std::cout<<"Array after exchange:\n";
delete[] array;
return 0;
Пояснення:
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
#include <stdio.h>
int main()
{
int array[100], maximum, size, c, location = 1;
printf("Enter the number of elements in array\n");
scanf("%d", &size);
printf("Enter %d integers\n", size);
for (c = 0; c < size; c++) { // Введення масиву.
scanf("%d", &array[c]); // Записуємо введені дані в масив.
}
maximum = array[0]; // Припускаємо, що перший елемент - максимальний.
for (c = 1; c < size; c++) { // Порівнятимо з рештою.
if (array[c] > maximum) { // Якщо array[c] > maximum, тоді...
maximum = array[c]; // ...maximum = array[c].
location = c+1; // ...location - "локація" (номер) max-значення.
}
}
int temp = array[0]; // temp - "тимчасова" (допоміжна) zm-ka.
array[0] = maximum; // max-значення -> [0].
array[location-1] = temp; // [0] -> max-значення.
printf("Resultant array is\n"); // Виводимо "результуючий" (вiдсортований) masyv:
for (c = 0; c < size; c++) { // ...for-loop'om:
printf("%d\n", array[c]); // ...printf'om:
} // ...end of for-loop.
return 0; // KONIEC programu! :)
}
Відповідь:
#include<iostream>
#include<limits>
using namespace std;
class MyException:public std::exception{
public:
char* what(){
return "Incorrect input. Please, try again.\n";}
};
int CheckInput(std::string s){
int temp;
while(true){
try{
std::cout<<s;
if(!(std::cin>>temp)){
throw MyException();}
return temp;}
catch(MyException e){
std::cout<<e.what();
std::cin.clear();
std::cin.ignore(numeric_limits<streamsize>::max(), '\n');}
}
}
int main (){
int quantity=CheckInput("Input quantity of elements:\n");
int* array = new int[quantity];
for(int i=0;i<quantity;i++){
array[i] = CheckInput("Input "+std::to_string(i+1)+" element of array\n");
}
std::cout<<"Array before exchange:\n";
for(int i=0;i<quantity;i++){
std::cout<<i<<" -> "<<array[i]<<std::endl;}
int max = array[0],index = 0;
for(int i=1;i<quantity;i++){
if(max<array[i]){
max = array[i];
index = i;}}
std::swap(array[0],array[index]);
std::cout<<"Array after exchange:\n";
for(int i=0;i<quantity;i++){
std::cout<<i<<" -> "<<array[i]<<std::endl;}
delete[] array;
return 0;
}
Пояснення: