Задача 8 от лекция 2
Здравейте, тотално забих на задача 8, може ли някакви насоки към решението на задачата?
Засега имам функция която уж проверява string-а за числа..
int parseNumbers(string& str, int& resultLength)
{
int number = 0;
for (int i = 0; i < str.length(); i++)
{
if (str[i] == ' ') //If theres space
{
str[i + 1] = number += std::stoi(str);
}
}
return number;
}
Това което се опитвам да направя е да записвам number в масив, на прав път ли съм?
Здравей, благодаря за бързия отговор!
То какви начини имало, а аз в какви филми се вкарвам! :D
А ето, че се вкарах в още един:
Получавам compile error: Error LNK2001 unresolved external symbol "int * theArray" (?theArray@@3PAHA)
Тя се предизвиква от " sumOfArray += theArray[j]; "
Няколко неща ти пречат тук:
1) въвеждаш в myArray, пък се опитваш да събираш елементите на theArray (btw това не са много добри имена - my и the са ти ненужни, защото всички arrays в твоята програма са "my" по принцип :D и това най-вероятно те е объркало, ако ги беше кръстил примерно localArray и globalArray веднага щеше да забележиш, че записваш в едното пък сумираш другото Edit: localArray и globalArray също не са прекрасни имена, ама са по-добри от my и the)
2) Какво става, ако броят елементи е по-голям от 10? myArray е само 10 елемента. Това с arraysize трябва да го направиш първо, само че не въвеждай в масив а просто в някаква dummy променлива, колкото да преброиш елементите. След това направи myArray[arraySize] и направи нов stringstream по str и чак тогава въведи елементите, както ти ги въвеждаш (така вече знаеш, че myArray ще е достатъчно голям)
3) Това, което ти дава грешка, е че си декларирал глобален масив, без да му кажеш размер и без да му дадеш инициализация - int theArray[]; За C++ това означава "тук има ще един масив от int, на който по-късно ще му дам размер или ще го инициализирам, засега само казвам, че ще го има някъде из кода" (може да погледнеш в лекцията за функции - правихме нещо подобно с разделянето на декларация и дефиниция на функция) - но ти никога не му даваш размер и затова компилатора ти казва "абе тука ми казаха, че ще има един масив, ама го няма" (linker error). Предполагам, че си искал да напишеш int theArray[100]; примерно, което вече означава "създай един масив от 100 int елемента"
Поздрави,
Жоро
Първо благодаря за отделеното време, че то вече стана доста занимавка с мен.
Това с грешката беше, че ползвам масив който изобщо не трябва да го има в програмата, но е останал от преди когато съм се опитвал да замажа нещата да работят :D
В момента събирам елементите по следния начин:
Но не намирам начин как да направя масива, ако се опитам да го направя след while цикъла по следния начин int myArray[arraysize]; , казва че arraysize трябва да е const, което не е нищо изненадващо. Ако се опитам да направя някакъв const int, който е равен на arraysize казва че отново не е const..
За сега това решение работи:
Но така не се следва условието на задачата, също така resultLength не се използва..