#c
#c
Вопрос:
итак, я создаю вектор с неограниченными входными данными, но я хочу, чтобы, когда пользователь хотел прекратить ввод данных, он просто вводил нечисловой ключ, а затем просто переходил к следующему вектору, который является только первым, но перевернутым и умноженным на 8 и добавленным к нему 100, но когда он должен двигаться дальше, он просто добавляет кучу нулей в качестве входных данных
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
vector<int> (myVec1)(n);
vector<int> (myVec2)(n);
int i;
int sum;
for(i=0;i<n; i){
cout<<"please enter an integer ";
cin>>myVec1.at(i);
cout<<endl;
if(cin.fail()){
for(i=0; i<n; i ){
cout<<myVec1.at(i)<<" ";
}
}
}
cout<<endl;
for(i=0; i<n; i ){
sum=(myVec1.back()*8) 100;
myVec1.pop_back();
cout<<sum<<" ";
}
return 0;
}
это результат, и, как вы видите, есть только куча нулей после того, как я попытался остановить входные данные, если кто-нибудь может мне помочь, я действительно ценю это 🙂
пожалуйста, введите целое число 435
пожалуйста, введите целое число 412
пожалуйста, введите целое число 43
пожалуйста, введите целое число 56
пожалуйста, введите целое число 2
пожалуйста, введите целое число q
435 412 43 56 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 116 548 444 3396 3580
Комментарии:
1. Этот код было бы намного легче читать, если бы он был с отступом!
Ответ №1:
int n
имеет неопределенное значение (не инициализировано)
Вместо этого игнорируйте определение n
и инициализируйте свой вектор следующим образом: vector<int> myVec1;
и когда вы читаете значения, добавляйте их в вектор, используя myVec1.push_back(valueFromKeyboard);
#include <iostream>
#include <vector>
using namespace std;
int main () {
vector<int> myVec1;
vector<int> myVec2;
int valueFromKeyboard;
cout << "please enter an integer ";
while (cin >> valueFromKeyboard) {
if (!cin.fail()) {
myVec1.push_back(valueFromKeyboard);
}
cout << "please enter an integer ";
}
for (int i = 0; i < myVec1.size(); i ) {
cout << myVec1[i] << " ";
}
cout << endl << endl;
for (int i = 1; i < myVec1.size() 1; i ) {
myVec2.push_back(myVec1.end()[-i]*8 100);
}
for (int i = 0; i < myVec2.size(); i ) {
cout << myVec2[i] << " ";
}
return 0;
}
myVec1.end()[-1]
является последним элементом вектора, myVec1.end()[-2]
является предпоследним и т.д. Вот почему я создал этот цикл, for (int i = 1; i < myVec1.size() 1; i )
чтобы перейти от 1
к myVec1.size() 1
Комментарии:
1. итак, что я должен установить для него a в число или что? (я знаю, что это глупый вопрос, но я действительно просто хочу изучить lmao)