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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
Sweet Dream
1 / 1 / 0
Регистрация: 09.09.2009
Сообщений: 18
#1

Ввод и сложение чисел - C++

10.09.2009, 19:44. Просмотров 2040. Ответов 13
Метки нет (Все метки)

Есть вот такой код. Программа запоминает 20 введенных чисел и складывает их. Вроде бы все нормально только нужно разбить ее на 2 части-main и функцию, которая запоминает и складывает числа. Помимо этого нужно вписать параметр, чтобы можно было перед началом работы программы самостоятельно выбирать сколько чисел вводить-не 20 а к примеру 5, 10, 100.. Как это осуществить не понимаю(((( Кому не сложно, прошу помощи пожалуйста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <conio.h>
int fun (int j);
int main()
{
int j;
float s=0, a[20];
clrscr();
printf("Введите 20 чисел, по одному в строке\n");
for(j=0; j<20; j++)
{
scanf("%f",&a[j]);
 
s+=a[j];
}
for(j=0;j<20; j++)
{
printf("\n%2d:%9.2f ",j,a[j]);
}
printf("\n -------------\n%12.2f",s);
getch();
return s;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2009, 19:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод и сложение чисел (C++):

Организовать ввод двух вещественных чисел и операции над ними: сложение, вычитание, умножение и деление - C++
Парни всем привет! Начинаю новую тему по решению задач Задача звучит так: Написать программу, которая запрашивает ввод двух...

Ввод, транспонирование, умножение и сложение матриц используя функций - C++
Есть две матрицы, каждую из них надо транспонировать и умножить на себя, полученные две матрицы сложить, т.е в конце должна выводиться одна...

Написать программу которая выводит сумму чисел от a до b. Сложение чисел выполнять в процедуре - C++
Где ошибка? #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cmath&gt; using namespace std; int Sum (int x, int y) { int S; ...

Вычислить сумму двух длинных бинарных чисел, используя сложение чисел в двоичной системе счисления - C++
Задано положительное и отрицательное число в двоичной системе.Составить программу вычисления суммы этих чисел, используя сложения чисел в...

Сложение чисел - C++
Добрый вечер! Помогите пожалуйста новичку. Есть файл mas.txt, необходимо сложить все числа и вывести на консоль:wall: Числа записаны...

сложение чисел - C++
Доброго времени суток! вопрос вроде простой но я не могу понять объясните как сложить числа вот код программы if (x==a) { i = 4;...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
10.09.2009, 20:12 #2
Уточни что за язык. Код вроде Сишный, а озоглавил как С++.

Добавлено через 18 минут
Вспоминая С:
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
int fun (int j);
int main()
{
  int j, numb;
  float s=0, *dynamic_array;
 // clrscr();
 
  printf("Введите количество чисел: ");
  scanf("%i",&numb);
 
  dynamic_array = (float *)calloc(numb, sizeof(float));
  if(!dynamic_array)
  {// обработка ошибки выделения памяти 
    printf("\n\rОшибка выделения памяти ");
  }
  else
  {
    for(j=0; j<numb; j++)
    {
      scanf("%f",&dynamic_array[j]);
      s+=dynamic_array[j];
    }
 
    for(j=0;j<numb; j++)
    {
      printf("\n%2d:%9.2f ",j,dynamic_array[j]);
    }
    printf("\n -------------\n%12.2f",s);
  }
 
  getch();
  free(dynamic_array);
  dynamic_array = NULL;
 // return s;
  
}
1
Sweet Dream
1 / 1 / 0
Регистрация: 09.09.2009
Сообщений: 18
12.09.2009, 00:39  [ТС] #3
спасибо большое, пошла разбираться)
0
Sweet Dream
1 / 1 / 0
Регистрация: 09.09.2009
Сообщений: 18
15.09.2009, 21:40  [ТС] #4
помогите пожалуйста, нужно эту программу разбить на функцию, непосредственно производящую сложение и main
а так же вопрос-для чего в этой программе служит dynamic array? я так поняла что это модуль для организации динамического массива с заранее известным количеством элементов, в данном случае с тем, которое мы введем при старте программы Так ли это? И еще, для чего в некотторых случаях нужно выводить сообщение об ошибке выделения памяти? При каких условиях это может произойти?
P.s. TanT, язык С++
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
15.09.2009, 22:32 #5
вот
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
#include <iostream>
 
void Input(float*, short);
float Sum(float*, short);
int main()
{
    setlocale(LC_ALL, "Russian");
    short n;
    std::cout<<"Введите количество элементов:\n> ", std::cin>>n;
    float *mas = new float[n];
 
    Input(mas, n);
    std::cout<<"Сумма элементов массива равна "<<Sum(mas, n)<<'\n';
    system("pause");
    return 0;
}
void Input(float* mas, short n)
{
    std::cout<<"Введите элементы массива:\n";
    for(short i = 0; i < n; ++i, std::cin>>mas[i]);
}
float Sum(float* mas, short n)
{
    float sum(0.0);
    for(short i = 0; i < n; ++i, sum+=mas[i]);
    return sum;
}
0
Sweet Dream
1 / 1 / 0
Регистрация: 09.09.2009
Сообщений: 18
15.09.2009, 22:52  [ТС] #6
M128K145, спасибо, но тут более 10 ошибок... Первое что бросилось в глаза iostream а не iostream.h))
и еще вопрос, что такое
C++
1
setlocale(LC_ALL, "Russian");
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
15.09.2009, 23:02 #7
Sweet Dream, в какой среде работаеш?
C++
1
setlocale(LC_ALL, "Russian");
установка русской локалиации, т.е, проще говоря, возможность вывода русского текста в консоль
0
Sweet Dream
1 / 1 / 0
Регистрация: 09.09.2009
Сообщений: 18
15.09.2009, 23:03  [ТС] #8
M128K145, среда Borland C++ 4.5
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
15.09.2009, 23:15 #9
вот так
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
#include <iostream.h>
#include <conio.h>
 
void Input(float*, short);
float Sum(float*, short);
int main()
{
        short n;
    cout<<"Vvedite kolichestvo elementov v massive\n> ", cin>>n;
        float *mas = new float[n];
 
        Input(mas, n);
    cout<<"Cymma elementov massiva ravna "<<Sum(mas, n)<<'\n';
    getch();
    return 0;
}
void Input(float* mas, short n)
{
    cout<<"Vvedite elementu massiva:\n";
        for(short i = 0; i < n; ++i, cin>>mas[i]);
}
float Sum(float* mas, short n)
{
        float sum(0.0);
        for(short i = 0; i < n; ++i, sum+=mas[i]);
        return sum;
}
0
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
15.09.2009, 23:20 #10
Цитата Сообщение от Sweet Dream Посмотреть сообщение
M128K145, среда Borland C++ 4.5
если есть возможность скачайте visual C++ 2008 express edition стандарт как никак.
0
Sweet Dream
1 / 1 / 0
Регистрация: 09.09.2009
Сообщений: 18
15.09.2009, 23:42  [ТС] #11
Андрейка, может и стандарт но не у нас Кроме борланд 4,5 ничего препод не признает И мы работать должны в этой же среде

Добавлено через 16 минут
M128K145, спасибо за помощь но я так поняла что это программа написанная с нуля? потому что в ней к примеру другой вывод результата сложения-нет нумерации выводимых чисел вида
0 1,00
1 3,00
2 2,25
и т.д
Так же не выводится черта и сумма сложенных чисел под ней В общем всего того что есть в этом коде
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
int fun (int j);
int main()
{
  int j, numb;
  float s=0, *dynamic_array;
 // clrscr();
 
  printf("Введите количество чисел: ");
  scanf("%i",&numb);
 
  dynamic_array = (float *)calloc(numb, sizeof(float));
  if(!dynamic_array)
  {// обработка ошибки выделения памяти
     printf("\n\rОшибка выделения памяти ");
  }
  else
  {
     for(j=0; j<numb; j++)
     {
        scanf("%f",&dynamic_array[j]);
        s+=dynamic_array[j];
     }
 
     for(j=0;j<numb; j++)
     {
      printf("\n%2d:%9.2f ",j,dynamic_array[j]);
     }
     printf("\n -------------\n%12.2f",s);
  }
 
  getch();
  free(dynamic_array);
  dynamic_array = NULL;
  return s;
 
}
Вот этот код бы переделать под функцию и main и все было бы замечательно((
0
Sweet Dream
1 / 1 / 0
Регистрация: 09.09.2009
Сообщений: 18
19.09.2009, 19:54  [ТС] #12
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void fun(dynamic_array, int numb)
{
 int j;
 float s=0, *dynamic_array;
 for(j=0; j<numb; j++)
 {
  scanf("%f",&dynamic_array[j]);
  s+=dynamic_array[j];
 }
}
void Print(dynamic_array, int numb)
{
 int j;
 for(j=0;j<numb; j++)
 {
  printf("\n%2d:%9.2f ",j,dynamic_array[j]);
 }
 printf("\n -------------\n%12.2f",s);
}
int main()
{
 int kol;
 printf("Введите количество чисел: ");
 scanf("%i",&kol);
 dynamic_array = (float *)calloc(numb, sizeof(float));
 fun(dynamic_array, kol);
 Print(dynamic_array, kol);
 getch();
 free(dynamic_array);
 dynamic_array = NULL;
 return 0;
}
вот попробовала сама переделать программу под нужный мне вид-отдельно функция, отдельно main
Но при компиляции компилятор выдает предупреждение и ошибку только к этой строке:
C++
1
void fun(dynamic_array, int numb)
Warning PROBNAYA.CPP 4: Style of function definition is now obsolete
Error PROBNAYA.CPP 4: ) expected
Больше ни ошибок ни предупреждений нет
Подскажите пожалуйста что не так? Или просто код программы написан не правильно?
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
19.09.2009, 21:17 #13
вот исправленное
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
float fun(float* dynamic_array, int numb)
{
    int j;
    float s=0;
    for(j=0; j<numb; j++)
    {
    scanf("%f",&dynamic_array[j]);
    s+=dynamic_array[j];
    }
    return s;
}
void Print(float* dynamic_array, int numb, float s)
{
    int j;
    for(j=0;j<numb; j++)
    printf("\n%2d:%9.2f ",j,dynamic_array[j]);
    printf("\n -------------\n%12.2f",s);
}
int main()
{
    int kol;
    float s;
    printf("Введите количество чисел: ");
    scanf("%i",&kol);
    float* dynamic_array = (float *)calloc(kol, sizeof(float));
    s = fun(dynamic_array, kol);
    Print(dynamic_array, kol, s);
    getch();
    free(dynamic_array);
    dynamic_array = NULL;
    return 0;
}
0
Sweet Dream
1 / 1 / 0
Регистрация: 09.09.2009
Сообщений: 18
19.09.2009, 21:21  [ТС] #14
M128K145, спасибо))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2009, 21:21
Привет! Вот еще темы с ответами:

Сложение чисел - C++
друзья, помогите пожалуйста. Написать функцию, которая будет складывать в стобик 2 числа. Ввести значения типа char Чтобы все это было...

Класс "Матрица": ввод/вывод, умножение, сложение/вычитание, транспонирование, сдвиг - C++
Написал код , но выдает ошибку , подскажите в чем она. Условие написать код в котором выполняются действие над матрицами ввод/вывод ,...

Сложение двоичных чисел - C++
Здравсвуйте! Даны два массива: int a = {1, 0, 0, 1}; // двоичное число 1001 int b = {0, 1, 1, 1}; // двоичное число 0111 ...

Сложение двух чисел - C++
Условие задачи в её названии. Я так понимаю тут длинная арифметика. Во входном файле два целых неотрицательных числа A и B (A, B ≤...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.09.2009, 21:21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru