Wczytanie 60 000 liczb do tablicy

Odpowiedz Nowy wątek
2015-03-22 22:19

Rejestracja: 8 lat temu

Ostatnio: 4 lata temu

0

Witam , wykonuje zadanie na spoja i nie przechodzi mi testow, chodzi o to ze musze wczytac 60 000 liczb ciągu jednak maksymalnie wczytuje 32768 , nie wiem w czym problem o to wczytanie i link z ideone https://ideone.com/Ygalsv

 #include <iostream>
#include <cstdio>
using namespace std;

const int MAX = 10000000;
int  i;
int a[MAX];

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv)
{
fscanf(stdin, "%d", &a[0]);
i++;

while(!feof(stdin) ){
    fscanf(stdin, "%d", &a[i]);
i++;

}
 printf("%d",i);
}
Może to "nie istotne", ale nie "zerujesz" zmiennej i - deadparty211 2015-03-23 09:43
Standard mówi, że zmienne globalne są domyślnie zerowane. - hauleth 2015-03-23 22:10
Dobrze wiedzieć :D - deadparty211 2015-03-24 09:12

Pozostało 580 znaków

2015-03-22 22:50

Rejestracja: 5 lat temu

Ostatnio: 5 lat temu

main powinien wyglądać tak:

int main()
{
  // blok kodu
}

Co do problemu może spróbuj użyć unsigned albo dynamicznego alokowania pamięci. Programy testowane na spoju mają limit pamięci do wykorzystania.

Pozostało 580 znaków

sig
2015-03-22 22:57
sig

Rejestracja: 9 lat temu

Ostatnio: 6 godzin temu

0

Daj link do zadania, mam dziwne wrażenie że nie musisz. Swoją drogą podejrzewam że limit pamięci ci się wyczerpał, taka tablica trochę by jej zajeła

edytowany 1x, ostatnio: sig, 2015-03-22 23:00
60k intów to chyba jednak mniej niż 200mb - some_ONE 2015-03-22 22:59
wiem, mój błąd. pomyliłem z kilobajtami. - sig 2015-03-22 23:01

Pozostało 580 znaków

2015-03-22 23:01

Rejestracja: 7 lat temu

Ostatnio: 3 godziny temu

0
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
int main(){
    vector<int> tab;
    copy(
        istream_iterator<int>(cin),
        istream_iterator<int>(),
        back_inserter(tab)
    );
    return 0;
}

Pozostało 580 znaków

Mały Terrorysta
2015-03-23 09:12
Mały Terrorysta
0

i nie jest zainicjalizowane wartością.

Pozostało 580 znaków

2015-03-23 10:27

Rejestracja: 5 lat temu

Ostatnio: 1 dzień temu

Lokalizacja: Łódź

0

Jest zmienną globalną, więc choć to nieeleganckie, to jest zainicjowane 0.


Ogólnie na prace domowe mam stawki zaporowe. Czasem coś o programowaniu znajdzie się na mojej stronie

Pozostało 580 znaków

2015-03-23 17:14

Rejestracja: 12 lat temu

Ostatnio: 10 minut temu

2

Wczytywanie powinno wyglądać tak (pomijając użycie zmiennych globalnych).
https://ideone.com/Q6S3N9
Kod jest prawidłowy, problemem jest ograniczenia z ideone: https://ideone.com/faq

Q: Jaki jest limit długości kodu źródłowego, wejścia i wyjścia?
A: 64 KB.

jedna cyfra + jedna spacja daje dwa bajnty na jedną daną wejściowa daje ograniczenie 64kB/2 = 2^15 = 32768 czyli wszystko się zgadza.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 3x, ostatnio: MarekR22, 2015-03-23 17:21

Pozostało 580 znaków

2015-03-23 22:25

Rejestracja: 8 lat temu

Ostatnio: 4 lata temu

0

Zgadza sie to ograniczenia platformy

Pozostało 580 znaków

Odpowiedz

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