fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <sstream>
  5. #include <limits>
  6.  
  7. struct Bag
  8. {
  9. int NumBalls;
  10. int Balls[10];
  11.  
  12. Bag() : NumBalls(0) {}
  13. };
  14.  
  15. int main()
  16. {
  17. int N;
  18. std::cout << "How many bags do you want? ";
  19.  
  20. if (!((std::cin >> N) && (N > 0)))
  21. {
  22. std::cout << "Bad input!" << std::endl;
  23. return 0;
  24. }
  25. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  26.  
  27. std::vector<Bag> Bags(N);
  28.  
  29. for (int i = 0; i < N; ++i)
  30. {
  31. std::cout << "Enter balls for bag " << i+1 << ": ";
  32.  
  33. std::string line;
  34. if (!std::getline(std::cin, line))
  35. break;
  36.  
  37. std::istringstream iss(line);
  38.  
  39. Bag &bag = Bags[i];
  40. int ball;
  41.  
  42. do
  43. {
  44. if (!(iss >> ball))
  45. {
  46. if (!iss.eof())
  47. std::cout << "Bad input!" << std::endl;
  48. break;
  49. }
  50.  
  51. bag.Balls[bag.NumBalls] = ball;
  52. bag.NumBalls++;
  53. }
  54. while (bag.NumBalls < 10);
  55. }
  56.  
  57. std::cout << std::endl;
  58.  
  59. for (int i = 0; i < N; ++i)
  60. {
  61. std::cout << "Bag " << i+1 << " contains:";
  62.  
  63. Bag &bag = Bags[i];
  64. for(int j = 0; j < bag.NumBalls; ++j)
  65. std::cout << " " << bag.Balls[j];
  66.  
  67. std::cout << "\n";
  68. }
  69.  
  70. return 0;
  71. }
Success #stdin #stdout 0s 15240KB
stdin
3
1 3 4 9
2 5 1 7 4 3
5 2 0
stdout
How many bags do you want? Enter balls for bag 1: Enter balls for bag 2: Enter balls for bag 3: 
Bag 1 contains: 1 3 4 9
Bag 2 contains: 2 5 1 7 4 3
Bag 3 contains: 5 2 0