Margal Napisano 12 Września 2010 Zgłoś Napisano 12 Września 2010 #include <iostream>using namespace std;int n;int t[10];bool c(int l){ int s=10; n=1; for(int i=0;i<10;i++) t[i]=0; while(l>=s) {s=s*10; n++;} for(int i=0;i<n;i++){t[i]=(l%s)/(s/10); s=s/10;} for(int i=0;i<(n/2);i++) {if(t[i]==t[n-1-i]) return true;} return false;} int main(){ int t; cin >> t; for(;t;t--) { int l; cin >> l; int i=0; for(;c(l);i++) { int t1[10]; for(int j=0;j<10;i++) {t1[j]=0;}/*!!!!*/ for(int j=0;j<n;j++) t1[n-1-j]=t[j]; int s=10; for(int j=1;j<n;j++) s=s*10; for(int j=0;j<n;j++) {l=l+s*t1[j]; s=s/10;} } cout << l << " " << i << "\n"; } return 0;} I za nic nie mogę dotrzeć, czemu wyskakuje mi line 23 invalid types `int[int]' for array subscript przy próbie kompilacji! (linia 23 to ta poprzedzona wykrzyknikami) Będę bardzo wdzięczny, jak ktoś powie, o co chodzi. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...
Trawienny Napisano 13 Września 2010 Zgłoś Napisano 13 Września 2010 Podpowiedz: a jaki jest warunek zakonczenia petli? jest "j<n" - ale ile wynosi n? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...
Margal Napisano 13 Września 2010 Zgłoś Napisano 13 Września 2010 Podpowiedz: a jaki jest warunek zakonczenia petli? jest "j<n" - ale ile wynosi n? n to jakaś tam liczba, zawsze większa od 1, a konkretniej ilość cyfr, z jakich składa się l. Coś w tym złego? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...
kfgz Napisano 13 Września 2010 Zgłoś Napisano 13 Września 2010 (edytowane) Błąd jest tzw. czeski ;) Pozwoliłem sobie przerobić co nieco #include <iostream>using namespace std;int n;int t[10];int c(int l) { int s = 10, i; n = 1; for(i = 0; i < 10; i++) t[i] = 0; while(l >= s) { s *= 10; n++; } for(i = 0; i < n; i++) { t[i] = (l % s) / (s / 10); s /= 10; } for(i = 0; i < (n / 2); i++) if(t[i] == t[n - 1 - i]) return 1; return 0;} int main() { int t2, j, s, l, i; int t1[10]; cin >> t2; for(; t2; t2--) { cin >> l; i = 0; for(; c(l); i++) { for(j = 0; j < 10; i++) t1[j] = 0; for(j = 0; j < n; j++) t1[n - 1 - j] = t[j]; s = 10; for(j = 1; j < n; j++) s *= 10; for(j = 0; j < n; j++) { l += s * t1[j]; s /= 10; } } cout << l << " " << i << "\n"; } return 0;} BTW, co oblicza ten progs? Edytowane 13 Września 2010 przez kfgz Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...
stivo Napisano 13 Września 2010 Zgłoś Napisano 13 Września 2010 (edytowane) n to jakaś tam liczba, zawsze większa od 1, a konkretniej ilość cyfr, z jakich składa się l. Coś w tym złego? Nic złego, tylko w main() ona nie ma wartości.. Edytowane 13 Września 2010 przez stivo Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...
kfgz Napisano 13 Września 2010 Zgłoś Napisano 13 Września 2010 (edytowane) Nic złego, tylko w main() ona nie ma wartości.. Ma wartość - jest ona obliczana przez funkcję c(). Edytowane 13 Września 2010 przez kfgz Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...
stivo Napisano 13 Września 2010 Zgłoś Napisano 13 Września 2010 Serio? Tylko funkcja c() nie zwraca jej wartości do rodzica wywołującego.. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...
kfgz Napisano 13 Września 2010 Zgłoś Napisano 13 Września 2010 Serio? Tylko funkcja c() nie zwraca jej wartości do rodzica wywołującego.. Ale co ma zwracać skoro n jest zmienną globalną. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...
stivo Napisano 14 Września 2010 Zgłoś Napisano 14 Września 2010 (edytowane) OK, niech będzie.. W sumie mój błąd. BTW. Margal nie oszczędzaj na linijkach, jeśli potem masz to komuś pokazać. Nawet tu na forum. Edytowane 14 Września 2010 przez stivo Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...
Margal Napisano 16 Września 2010 Zgłoś Napisano 16 Września 2010 Dziękuję. Po naniesieniu przeze mnie jeszcze kolejnych poprawek program działał tak: POLSKI SPOJ - Problem BFN1: test your programming skills on-line Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach More sharing options...