Wczytywanie danych

0

Witam wszystkich!

Jestem początkującym programistą i robię projekt na zaliczenie na studia, jednak przez obecną sytuację jest utrudniony kontakt z wykładowcą, więc może Wy mi pomożecie. A mianowicie, jak wczytać x danych w typie int, każda dana wpisana z palca i oddziela je spacja, np. 588 245 12 39 415

Nadmienię jeszcze, że nie możemy używać tablic i w ogóle stl.

A tu, to co już napisałem:

#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
    int a;
    scanf("%i", &a);

    int x;
    scanf("%i", &x);

   //i teraz tu wczytać te x wartości

    return 0;
}

Z góry dzięki!

3

pytanie to w końcu czyste C czy c++? Jak c++ to poczytaj o cin i cout i pętli while.

edit:
Jak dokładnie ma wyglądać wejście? To jeden ciąg? Jak tak to trzeba to do stringa wczytać, rozbić string po spacji na tablice po czym odczytać wartości i skonwerterować do int.

0

każda dana wpisana z palca

Doprecyzuj, czy w zadaniu dane wpisywane są z klawiatury, czy też są to losowe dane wczytywane z pliku.
Dodatkowo czy są jakieś ograniczenia na używanie stringów ( std::string ) ?

0

Może chodziło, że nie możecie używać tablic statycznych ??? To rozwiązanie na dynamicznych, i po co te a w tym zadaniu ??

Check anwser https://code.sololearn.com/cjpRRvsQN5du/#c

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv) {
    int x;
    scanf("%i", &x);
    
    int *p = (int*)malloc(sizeof(int) * x);
    int *temp = p;
    for(int i = 0; i < x; i++){
        scanf("%i", temp);
        temp++;
    }
    temp = p;
    for(int j = 0; j < x; j++){
        printf("%d ", *temp);
        temp++;
    }
    
    free(p);
    return 0;
}

2

Oryginalny Pytający ma aktywność gdzieś ... a my nawet nie znamy zadania.

0

Wybaczcie, że tak późno odpisuję, ale dopiero teraz mam czas. Prowadzący nalegał, żeby używać printf i scanf, mimo że cały kod ma być w C++. Stinga nie możemy używać, arrayów też nie. Ale z tego, co podpytałem kolegów, możemy chyba zrobić własną implementację tablicy. A mi chodzi tylko jak wczytać trzecią i czwartą linijkę wejścia.

Treść zadania:

Twoim zadaniem jest zapakowanie samochodu przedmiotami. Masz do wyboru n przedmiotów
Za przewóz i-tego przedmiotu możesz uzyskać Pi złotych (i=1,2,..,n).
Waga i-tego przedmiotu wynosi Wi (i=1,2,..,n).
Masa towaru w samochodzie nie może przekroczyć wartości C.
Upakuj samochód optymalnie, tj. tak by suma wag nie przekroczyła C oraz suma złotych była największa.
Możesz nie przyjąć zlecenia jeśli narazi Cię to na koszty. Niestety Pan, który przenosi przedmioty do samochodu pobiera stałą opłatę 20 zł za samochód.
Dodatkowo, koszt przeniesienia każdego załadowanego przedmiotu o wadze większej niż 100 kg wynosi 5 zł.

Dodatkowe informacje
Maksymalna ilość przedmiotów: 15.
Minimalny element w P i W: 0
Maksymalny element w P i W: 1000
Liczba testów (liczba uruchomień twojego programu): 10.
Wejście
W pierwszej linii liczba zapytań (samochodów do zapakowania) w danym teście.
W kolejnych liniach.
Ilość przedmiotów n.
Wypłaty za przedmioty Pi.
Wagi przedmiotów Wi.
Ładowność wozu C.
Wyjście
W kolejnych liniach.
Optymalny profit.
Przykład
Wejście
2
5
588 40 307 367 206
211 30 974 943 622
1766
1
596
997
550

Wyjście
965
0

0

Algorytm dowolny

0

Ok już rozumiem chyba, zaimplementuj liste i użyj jej zamiast tablicy, liste zapewne musisz zrobić na wskaźnikach.

A tu masz przykła kodu jak działa to na tablicach wystarczy, że wstawisz zamiast tablic listy zakładając, że to listy na szablonach generycznych, ale niech sobie będzie np. klasa Paczki która jest listą, sortuje się, usuwa zbędne paczki według wytycznych zadania, a z reszty paczek tworzy nową listę, która robi tak samo, aż wytworzenie nowej listy będzie null. Utworzone listy to twoje Tiry.

https://code.sololearn.com/cKUbMiK05hrQ/#cpp

Zachowaj kod ;p i za 2 lata na alogrytmice sspróbuj wymyśleć wydajniejszy algorytm upychania Tira tak by ładunek był jak najceniejszy ;p.

1 użytkowników online, w tym zalogowanych: 0, gości: 1