2017-06-08 4 views
-12
#include <iostream> 
#include <iterator> 
#include <algorithm> 

using namespace std; 

int ma(float array[], int N) 
{ 
    int k = 0; 
    float max = array[k]; 
    for (int i = 0; i < N; ++i) { 
     if (array[i] > max) { 
      max = array[i]; 
      k = i; 
     } 
    } 
    return k; 
} 

int main() 
{ 
    int t; 
    while (t--) { 
     int n; 
     cin >> n; 
     int w[n], p[n]; 
     for (int i = 0; i < n; i++) 
      cin >> w[i]; 
     for (int i = 0; i < n; i++) 
      cin >> p[i]; 
     float x[n]; 
     for (int i = 0; i < n; i++) 
      x[i] = p[i]/w[i]; 
     int weigth = 0, profit = 0; 
     while (weigth <= 20) { 
      // int k=distance(x, max_element(x, x + n)); 
      // int k= std::distance(x, max_element(x, x + sizeof(x)/sizeof(x))); 
      int k = ma(x, n); 
      weigth = weigth + w[k]; 
      profit = profit + p[k]; 
      x[k] = p[k] = w[k] = 0; 
     } 
     cout << weigth << endl 
      << profit << endl; 
    } 
} 

Der obige Code druckt nichts. Wenn Sie wollen, dass die Frage nach "catch-the-match" verweisen:Unten Code druckt nichts

+1

'int t; while (t -) '- Du hast vergessen,' t' zu initialisieren –

+8

"Wenn du die Frage haben willst ..." .. was? Wenn du eine Antwort willst, solltest du eine Frage in der Frage stellen und nicht hinter einem Link versteckt sein, der mich irgendwo anmeldet – user463035818

+0

willst du wahrscheinlich 'int t = N' wo N ist irgendein Wert ungleich null (zB 10), solltest du entscheiden was der Wert ist, wie ich die Frage ohne Anmeldung nicht sehen kann – niceman

Antwort

2

Ihr Code nicht einmal kompiliert,

Sie können dies nicht in C++

int n; 
cin >> n; 
int w[n], p[n]; 

weil n muss eine Konstante sein, Zeit zu kompilieren, auf dem Andererseits seits~~POS=HEADCOMP dies zu tun:

int t; 
while (t--) { 

eine unberechenbare Anzahl von Iterationen in der Schleife erzeugt, da t nicht initialisiert

+0

Danke..Ich habe gerade meinen Finger geschoben und vergessen, cin >> t hinzuzufügen –

+1

@PRATIKAHUJA Das ist ein großer Zettel, um 6 oder so Zeichen zu überspringen. – InternetAussie

0

Sie müssen int n als const int n deklarieren, damit Sie den Code korrekt kompilieren.