Witam otóż mam problem z zadaniem 4.1 z matury. Należało w nim wypisać ile pkt należy do krawędzi okręgu, a ile jest w środku okręgu. Może ktoś wytłumaczyć mi dlaczego program nie bierze pod uwagę wszystkich punktów z pliku tekstowego, tylko ich część? Z góry dziękuje. Plik z punktami można pobrać z oficjalnej strony cke (https://www.cke.edu.pl/).
#include <iostream> #include <string> #include <sstream> #include <cstdlib> #include <fstream> using namespace std; string punkty[10000], pkt[10000]; int tablica[10000]; int n=0, ln=0, lnn=0, lo=0; string tekst; void rozdz(string tekst); int main() { fstream plik; plik.open("punkty.txt", ios::in); if(plik.good()==false){cout<<"Plik nie zostal wczytany poprawnie "; exit(0);} string linia; int nrl=1, j=0; while(getline(plik,linia)) { switch(nrl) { case 1: rozdz(linia);break; } } plik.close(); int l=0, m=1; for(int i=0; i<=n;i++){ if((tablica[l]-200)*(tablica[l]-200)+((tablica[m]-200)*(tablica[m]-200))==200*200) { cout<<"Punkt o wspolzednych ("<<tablica[l]<<", "<<tablica[m]<<") lezy na brzegu tego okregu "<<endl; lo++; } else if((tablica[l]-200)*(tablica[l]-200)+(tablica[m]-200)*(tablica[m]-200)<200*200) { cout<<"Punkt o wspolzednych ("<<tablica[l]<<", "<<tablica[m]<<") nalezy do tego kola "<<endl; ln++; } else if((tablica[l]-200)*(tablica[l]-200)+(tablica[m]-200)*(tablica[m]-200)>200*200){ cout<<"Punkt o wspolzednych ("<<tablica[l]<<", "<<tablica[m]<<") nie nalezy do tego kola "<<endl; lnn++; } l+=2; m+=2; } cout<<lo<<" - tyle jest na krawedzi"<<endl; cout<<ln<<" - tyle nalezy"<<endl; cout<<lnn<<" - tyle nie nazlezy"<<endl; return 0; } void rozdz(string tekst) { istringstream iss(tekst); string token; while (getline(iss, token, ' ')) { tablica[n]=atoi(token.c_str()); n++; } }