我知道,你可能會再次戈納投我失望,我真的不明白這一點,但我真的堅持的東西,並不能弄明白,沒有這些信息在網絡中的任何地方都不存在,所以我有這個任務,我需要在兩個總和之間的差值最小的情況下創建2個容器,所以程序完成後可以完美地計算出所有內容,在我的任務:如何使while循環,直到有東西可以讀進來C++
用戶在一行unkwonw長度的數字輸入等以後,我做的所有種類它們之間款項,並找到一個與最低之間的差異。 (真),以便使用無窮大測試用例(來自賦值),並在此while(真)我有另一個(cin >>(SOMEINT)),但是我寫代碼的方式我使用一個while(true)循環並將其推回到一個向量中,並且在它讀取新行之後,只需打破這個錯誤並繼續計算。
但是在我們的測試軟件這一塊給運行時錯誤,因爲發現了一些情況後,然後開始打印無邊0 0,因爲沒有什麼可進入,但同時(真)剛剛還在繼續。
我的意思是我只是想,直到用戶輸入的東西,使這種方式的一方面是,比如你輸入30 50 90將返回80 90,然後WIAT再入境等。
CODE:
#include <iostream>
#include <string>
#include<vector>
#include <sstream>
#include <cmath>
#include <string.h>
#include <stdio.h>
#include <climits>
using namespace std;
const int length = 17000;
int power(int x){
int sum =2;
for(int i = 0;i<x;i++) {
sum *= 2;
}
return sum;
}
bool ison(int i,int x)
{
if((i>>x) & 1)return true;
return false;
}
int main()
{
while(true){
vector<int> Vec;
int cur = 0;
while (cin >> cur) {
Vec.push_back(cur);
if (cin.get() == '\n') {
break;
}
}
int * sumOfarr1 = new int[length];
int * sumOfarr2 = new int[length];
for(int i = 0; i<length;i++){
sumOfarr1[i] = 0;
}
for(int i = 0; i<length;i++){
sumOfarr2[i] = 0;
}
int index=0;
for(int i=1;i<length;i++)
{
for(int j=0;j<Vec.size();j++)
{
if(ison(i,j))
{
sumOfarr1[index]+=Vec[j];
}
else
{
sumOfarr2[index]+=Vec[j];
}
}index++;
}
int ans=INT_MAX;
int ii;
for(int i=0;i<index;i++)
{
if(abs(sumOfarr1[i]-sumOfarr2[i])<ans)
{
ii=i;
ans=abs(sumOfarr1[i]-sumOfarr2[i]);
}
}
if(sumOfarr1[ii]<sumOfarr2[ii]){
cout << sumOfarr1[ii] << " " << sumOfarr2[ii];
}
else{
cout << sumOfarr2[ii] << " " << sumOfarr1[ii];
}
cout << endl;
delete[] sumOfarr1;
delete[] sumOfarr2;
Vec.clear();
}
return 0;
}
歡迎堆棧溢出。請花些時間閱讀[The Tour](http://stackoverflow.com/tour),並參閱[幫助中心](http://stackoverflow.com/help/asking)中的資料,瞭解您可以在這裏問。 –
解決這些問題的正確工具是您的調試器。在*堆棧溢出問題之前,您應該逐行執行您的代碼。如需更多幫助,請閱讀[如何調試小程序(由Eric Lippert撰寫)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。至少,您應該\編輯您的問題,以包含一個[最小,完整和可驗證](http://stackoverflow.com/help/mcve)示例,該示例再現了您的問題,以及您在調試器。 –
閱讀整行('getline')。閱讀關於'stringstream'。 (並且一直使用'vector'。) – molbdnilo