Здравствуйте! У Меня была задача урорядочить елементы 2х массивов в порядке: первый эл-т к последнему, втрой к предпоследнему. Я это реализовал:
| Код | #include <fstream.h> #include <iostream.h> #include <math.h> #include <conio.h> int Mas ( int *A, int *B, int *C, int n){ for (int i = 0; i<n; i++){ if (i==0) {*(C+i) = *(A+i); *(C+1) = *(B+n-1); } else {*(C + 2*i ) = *(A + i); *(C +2*i+1 ) = *(B + n - i-1);} } }
int Inp (int *A, int *B, int n/*, ifstream *R*/){ ifstream f; f.open("C:\\Dev-Cpp\\LB5vhod.txt", ios::in); /*if(f){ if(f.eof()){ cout << "Net el-v!"; getch(); exit(1); } int m1; f >> m1; n = m1; if (f.eof()) //åñëè êîíåö ôàéëà - òî âûâîä ñîîáùåíèÿ îá îøèáêå è çàâåðøåíèå ïðîãðàììû { cout << "Ne hvataet elementov!" << endl; //âûâîä ñîîáùåíèÿ îá îøèáêå getch(); //ïàóçà, ÷òîáû ìîæíî áûëî ïðî÷èòàòü ñîîáùåíèå îá îøèáêå exit(1); //çàâåðøåíèå îñíîâíîé ôóíêöèè main } } */ for (int i = 0; i<n; i++) {f >> *(A+i);} for (int i = 0; i<n; i++) {f >> *(B+i);} f.close(); }
int File (int *A, int *B, int *C, int n, ofstream *R){ *R << "Por9doK: "<<endl; for (int i = 0; i<2*n; i++) { *R<< *(C+i) << ' '<<endl; } }
int main () { int n = 5; int A[5], B[5], C[10]; int i;
ofstream R; R.open ("C:\\Dev-Cpp\\Lab5.txt", ios::out); Inp (&A[0], &B[0], n); Mas (&A[0], &B[0], &C[0], n); File ( &A[0], &B[0], &C[0], n, &R);
}
|
собственно, проблема возникла, когда попросили сделать проверку (вводили в программу меньше 9 элементов или вообще ничего не вводили - программа рушалась). Я пробовал выполнить проверку, сумел только на 0 (и то при нормальном вводе прога перестала работать). Помогите с выводом в файл, пожалуйста !
Модератор: Пожалуйста, один топик - один вопрос. |