Advertisement
Pafnytiu

Задачка на пояснение

Jul 4th, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1. #include <iostream> // Для использования функции cout
  2. #include <cstdlib> // Для использования функции atoi
  3. #include <vector> // Для использования класса вектор STL
  4.  
  5. using namespace std;
  6.  
  7. int main(int argc, char **argv)
  8. {
  9. setlocale(0,"");
  10. vector<int> numbers; // объявили вектор из целых чисел
  11. // Получаем номера из аргументов командной строки
  12. for(int i=1; i<argc; i++)
  13. numbers.push_back(atoi(argv[i]));
  14.  
  15. // Проверьте, пуста ли строка, выйти если так
  16. if(numbers.size() == 0)
  17. {
  18. cout << "Usage: ./arrays NUMBER [MORENUMBERS]" << endl;
  19. system("pause");
  20. return(1);
  21. }
  22.  
  23. // Вывести предоставленные исходные числа
  24. cout << "Общее количесвто целых чисел : " << numbers.size() << endl;
  25. for(unsigned int i=0; i<numbers.size(); i++)
  26. cout << "Число [" << i << "]: " << numbers[i] << endl;
  27.  
  28. // Найти наименьшее число в массиве
  29. int smallest = numbers[0]; // Приравниваем переменной smallest первый элемент
  30. for(unsigned int i=1; i<numbers.size(); i++)
  31. {
  32. if(numbers[i] < smallest) // если элемент меньше, чем переменная smallest,
  33. {
  34. smallest = numbers[i]; // то приравниваем smallest значение этого элемента
  35. }
  36. }
  37.  
  38. // Создаётся новый массив на размер меньше // создаётся новый вектор
  39. vector<int> new_numbers; // Вводим новую переменную new_numbers
  40. bool hit_smallest = false; //bool = 0
  41. for(unsigned int i=0; i<numbers.size(); i++)
  42. {
  43. if((numbers[i] == smallest) && !hit_smallest) // если элемент равен значению переменной smallest и bool != 0,
  44. {
  45. hit_smallest = true; // то bool == 1
  46. }
  47. else
  48. {
  49. new_numbers.push_back(numbers[i]); // иначе new_numbers добавляем в конец вектора со значением number[i]
  50. }
  51. }
  52.  
  53. // Вывести новый массив (меньше, чем исходный)
  54. for(unsigned int i=0; i<new_numbers.size(); i++)
  55. cout << " Число [" << i << "]: " << new_numbers[i] << endl;
  56. system("pause");
  57. return(0);
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement