Форум программистов, компьютерный форум CyberForum.ru

Корректность моего кода - C++

Восстановить пароль Регистрация
 
_kod_
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 84
24.04.2012, 18:55     Корректность моего кода #1
В общем, написал я код... Но поскольку опытности не хватает, то хотел спросить корректен ли он? Н-р, я использовал глобальный указатель, что в принципе(по моей информации) не есть good)... Оцените плиз мою работу...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//---------------------------------------------------------------------------
#include <iostream>
#include <vcl.h>
#pragma hdrstop
double *p_arr = new double[10];
//---------------------------------------------------------------------------
 
#pragma argsused
int Fill_array(char *arr_name, int );
void Show_array(double array[],int SIZE);
int* Reverse_array(double array[], int SIZE);//Это потом добавлю... Тут не возникнет сложностей
int main(int argc, char* argv[])
{
 char *p_str = new char[10];
 cout<<"Enter name of array: ";
 cin.getline(p_str,10);
 
 int i = Fill_array(p_str, 10);
 Show_array(p_arr, i);
 
 delete [] p_arr;
 cout<<endl;
 system("pause");
        return 0;
}
 
int Fill_array(char *arr_name, int m_size)
 {
  //double d_arr[10];
  //p_arr = d_arr;
  int i;
   for(i=0;i<m_size;i++)
    {
     cout<<"Enter the "<<i+1<<" element of "<<arr_name<<" array: ";
     cin>>p_arr[i];
 
      if(cin.fail() != false)
       {
        break;
       }
    }
   return i;
 }
 
void Show_array(double array[],int SIZE)
 {
  for(int i=0;i<SIZE;i++)
   cout<<array[i]<<" ";
 }
 
//---------------------------------------------------------------------------
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
24.04.2012, 19:26     Корректность моего кода #2
Немного подредактировал ваш код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
 
using std::cin;
using std::cout;
using std::endl;
 
const int MAX_SIZE = 10;
const int MAX_LENGTH = 256;
 
void Input_array(double array[], char *arr_name, int m_size);
void Show_array(const double array[], int size);
 
int main(int argc, char* argv[])
{
     char * p_str = new char[MAX_LENGTH];
     cout << "Enter name of array: ";
     cin.getline(p_str, MAX_LENGTH);
 
     double * p_arr = new double[MAX_SIZE];
     Input_array(p_arr, p_str, MAX_SIZE);
     Show_array(p_arr, MAX_SIZE);
     
     delete [] p_arr;
     delete [] p_str;
     
     cout << endl;
     system("pause");
     return 0;
}
 
void Input_array(double array[], char *arr_name, int m_size)
 {
   for(int i = 0;i < m_size; ++i)
    {
     cout << "Enter the " << i + 1 << " element of "
                          << arr_name << " array: ";
     cin >> array[i];
 
      if( cin.fail() )
       {
        break;
       }
    }
 }
 
void Show_array(const double array[], int size)
 {
  for(int i = 0;i < size; ++i)
   cout << array[i] << " ";
 }
Так должно быть корректнее.
_kod_
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 84
24.04.2012, 19:42  [ТС]     Корректность моего кода #3
Я вот не могу понять одного... Зачем писать явно, что мы используем пространство имен std::? Без него же все работает... Я вот тоже книгу читаю, там автор постоянно втыкает
C++
1
using namespace std;
Хотя надо заметить, я тут грешным делом решил в ЛИнуксе покодить, и там без этого std не компилится))) А вот под виндой так все летает
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
24.04.2012, 19:45     Корректность моего кода #4
Цитата Сообщение от _kod_ Посмотреть сообщение
Я вот не могу понять одного... Зачем писать явно, что мы используем пространство имен std::? Без него же все работает...
Только на компиляторах, не соответствующих стандарту.
По хорошему надо не только забыть о using namespace std; но и using std::smth и писать вместо этого в коде std::cin/std::cout/etc.
_kod_
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 84
24.04.2012, 19:52  [ТС]     Корректность моего кода #5
Помоему, это просто лишняя трата времени... Так как выигрыш в памяти мы все равно не получаем(так как iostream все равно подгружает все свои возможности...). Вот было бы неплохо, если бы с помощью std:: мы бы могли выбрать какие именно объекты хотим использовать, память бы экономилась имхо)
Yandex
Объявления
24.04.2012, 19:52     Корректность моего кода
Ответ Создать тему
Опции темы

Текущее время: 00:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru