Ad 1.
#include <iostream>
using namespace std;
int main()
{
char* month[100]=
{
"Styczeniu",
"Lutym",
"Marcu",
"Kwietniu",
"Maju",
"Czerwiecu",
"Lipiecu",
"Sierpieniu",
"Wrzesieniu",
"Pazdzierniku",
"Listopadzie",
"Grudniu",
};
int income=0;
int sold[12];
for (int i=0; i<=11; i++)
{
cout << "Podaj liczbe sprzednych ksiazek w " << month[i] << ": ";
cin >> sold[i];
income += sold[i];
}
cout << "\nW tym roku sprzedales " << income << " ksiazek\n";
return 0;
}
Deklarowałeś tablicę intów w pętli, czyli za każdym obrotem pętli tworzyłeś nową tablicę, a nie odnosiłeś się do tej, którą już miałeś wcześniej. Poza tym, rozmiar tablicy miałeś tylko na 11 elementów. Iterujemy tablicę od 0, ale element tablicy o indexie 0 jest jej 1 elementem.
Ad 2.
tak jak w treści zadania, wykorzystaj to co już masz. zrób pętlę w pętli (duża podpowiedź).
PS Trochę co do semantyki. Jeśli używasz angielskich nazw zmiennych to:
a) nazywaj je tak, żeby oddawały to co reprezentują (book jako przychód ze sprzedaży nic nie mówił),
b) wszystkie zmienne utrzymuj w jednym języku. jeśli musisz używać polskich nazw ze względu na specyfikację zadania, to używaj polskich nazw w całym programie.
c) jak już używasz angielskich nazw, to sprawdzaj pisownię (nawet zwykły translate.google.pl), bo o ile wiem to nie ma czegoś takiego jak "seld" w j.angielskim.