goma smile Posted November 1, 2011 Report Share Posted November 1, 2011 Pārveidot viendimensijas masīvu tā, lai katrs elements būtu vienādsar elementu summas un atbilstošā sākummasīva elementa dalīšanas rezultātu (ja elements ir vienāds ar 0, tad rezultāta elementam jāpiešķir 0). masīva izmers: 15-20 kā to saprast ? Quote Link to comment Share on other sites More sharing options...
xPtv45z Posted November 1, 2011 Report Share Posted November 1, 2011 Tev ir kaut kāds sakuma masīvs, piemēram, $a1 = array(3, 7, 5, 6, 4, ...) Un jāizveido jaunais masīvs - array($a1 elementu summa / $a1[0], $a elementu summa / $a1[1], utt..) Quote Link to comment Share on other sites More sharing options...
goma smile Posted November 1, 2011 Author Report Share Posted November 1, 2011 Manai programmai jābūt gavlenajai un 2 apakšfunkcijām... 1galvejā kur viss notiek 2.1 = Sasummē visu elementu summu 2.2 = elementu summu dala ar mainīgo elementu summu... Tagad tas izskatās šādi : http://paste.php.lv/808cf0a88ab9e58077d83b613c4a4545?lang=c bet man nesanāk ievienot lai 2.2apakšfunkcija ņem informāciju no 2.1 = 2 apakšfunkcijām jābūt obligāti - uzdevumu nosacijums.. nesanāk split(kopeejaa_summa(masiivs), masiivs); Quote Link to comment Share on other sites More sharing options...
goma smile Posted November 15, 2011 Author Report Share Posted November 15, 2011 Ir pagājis laiks un esmu izveidojis augstāk minēto "programmiņu", bet man ir jautājums Rekur ir kods: http://paste.php.lv/0554321f46b0a9824b9214ea5548c24e?lang=c Funkcijas kopējā masīva rezultāta izsaukšana : kopeejaa_summa(masiivs); // 105 bet kā var tagat to funkciju to skaitli, iznākumu ievietot : split(∑, masiivs); // Katra masīva dalīšana ar kopējo summu Tas izskatītos kkā šītā: split(kopeejaa_summa(masiivs), masiivs); ,bet tā neiet.... Quote Link to comment Share on other sites More sharing options...
codez Posted November 15, 2011 Report Share Posted November 15, 2011 (edited) Kāpēc visur jātaisa viss ar pointeriem? kāpēc summa nevar būt venkārši split(int sum, ... ? Kā funkcija split zin, cik garš ir masīvs? Ja globāli zin, tad jau masīvu arī var ņemt no globālā. Ja par konkrēto problēmu, tad problēma ir tāda, ka: 1) tev split funkcijai jāpadod pointeris, 2) tev sumas funkcija neko neatgriež. P.S. un kur kodā atstarpes? Edited November 15, 2011 by codez Quote Link to comment Share on other sites More sharing options...
goma smile Posted November 15, 2011 Author Report Share Posted November 15, 2011 Summas funkcija atgriez, atgriež skaitli, kas ir mainīgs !.... un kas ir pointeris :D ? Quote Link to comment Share on other sites More sharing options...
codez Posted November 15, 2011 Report Share Posted November 15, 2011 (edited) Tem summas funkcijai ir: void kopeeja_summa(.... un nav return, tātad neko neatgriež. Lai atgrieztu, vajag int sum(int[] mas) { //.... return rez; } Bet es darītu šādi: #include <iostream> #include <vector> #include <iterator> using namespace std; void printVector(vector<int> m){ copy (m.begin(), m.end(), ostream_iterator<int> (cout, " ")); cout << endl; } int sum(vector<int> m){ int r=0; for(vector<int>::iterator it=m.begin();it!=m.end();it++){ r+=*it; } return r; } void invert(int x, vector<int>& m){ for(vector<int>::iterator it=m.begin();it!=m.end();it++){ if (*it) *it=x/ *it; } } int main(){ int masivs[]={3,5,8,2,3,0,1,5,4,3}; vector<int> mas(masivs, masivs+sizeof(masivs)/sizeof(int)); printVector(mas); invert(sum(mas),mas); printVector(mas); } Edited November 15, 2011 by codez Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.