Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Тима
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 74
#1

Небольшая ошибочка в массиве

07.12.2015, 18:37. Просмотров 201. Ответов 5
Метки нет (Все метки)

Смысл программы в том,Что в ввожу сначала сколько чисел я хочу ввести.Например 2.
В итоге преобразований и операций делает например 2+5=7
Но оно уже не выводе в любом случае всегда в конце приписывает ноль.
Где ошибка? Что сделать?
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
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include<string>
 
using namespace std;
 
 
void main()
{
    setlocale(LC_ALL, "Rus");
    char A[255] = " ";
    cout << "Введите числа: ";
    int s;
    char f[255] = " ";
    char fplus[2] = "+";
    char fravno[6] = "=";
    int k=0;
    int n;
    int p = 0;
    cin >> n;
    for (int i = 1; i < n; i++)
    {
        cin >> A;
        strcat_s(f, A);
        strcat_s(f, fplus);
        k = atoi(A);
        p += k;
    }
    cin >> A;
    strcat_s(f, A);
    k = atoi(A);
    p += k;
    cout << f << p << strcat_s(f, fravno);
    _getch();
}
0
Миниатюры
Небольшая ошибочка в массиве  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2015, 18:37
Ответы с готовыми решениями:

ошибочка
происходит ошибка в стрчоке 33, в файле содержаться цифры, подскажите в чем...

Ошибочка
#include &lt;vcl.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt;...

IsProcessRun ошибочка
Всем привет. Недавно начал изучать C++ и сразу столкнулся с проблемкой. Делаю...

ошибочка с корнем
#include &lt;stdio.h&gt; #include &lt;iostream.h&gt; #include &lt;math.h&gt; int main () ...

Ошибочка маленькая и не понятная(((
Исправите ошибку.За ране спасибо! #include &quot;stdafx.h&quot; #include &lt;conio.h&gt;...

5
Tanya Solnce
0 / 0 / 1
Регистрация: 06.12.2015
Сообщений: 10
07.12.2015, 18:48 #2
cout << f << p << strcat_s(f, fravno);
Сотри strcat_s(f, fravno)!
0
Тима
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 74
07.12.2015, 20:17  [ТС] #3
Где ошибка я вижу,но в чём она заключается,И как её исправить?
0
Tanya Solnce
0 / 0 / 1
Регистрация: 06.12.2015
Сообщений: 10
07.12.2015, 21:50 #4
Тима,
Я чего то не понимаю, или ошибка проходит удаляя
C++
1
strcat_s(f, fravno)
0
Тима
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 74
07.12.2015, 23:27  [ТС] #5
Если бы...
0
Melg
539 / 160 / 79
Регистрация: 23.09.2013
Сообщений: 316
08.12.2015, 00:03 #6
Тима, исправления которые я внес в Вашу программу и которые повлияли на вывод:
1) strcat_s заменен на strcat
2) strcat(f, fravno) - выполняется до вывода f в поток.

Исправления которые относятся к общему стилю:
1) убраны излишние заголовочные файлы
2) using namespace std; заменен на более узкоспециализированные директивы
3) размер массивов fplus, fravno не указывается в явном виде
4) изменено начальное значение цикла с 1 на 0, убран дублирующий одну итерацию код после цикла

Получившийся код:
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>
#include <string.h>
 
using std::cout;
using std::cin;
 
int main() {
  setlocale(LC_ALL, "Rus");
  char A[255] = " ";
  cout << "Введите числа: ";
  char f[255] = " ";
  char fplus[] = "+";
  char fravno[] = "=";
  int k = 0;
  int p = 0;
  size_t n = 0;
  cin >> n;
  for (size_t i = 0; i < n; ++i) {
    cin >> A;
    strcat(f, A);
    strcat(f, fplus);
    k = atoi(A);
    p += k;
  }
  strcat(f, fravno);
  cout << f << p;
}
Пруф работоспособности:
http://ideone.com/HBfOfs

Общее замечание - если Вы реализуете программу на языке с++ стоит задуматься об использовании средств языка для работы со строками, в частности - использовании типа std::string (подробнее можно прочесть тут:
http://www.cplusplus.com/reference/string/string/string/) Данный тип с одной стороны позволяет расширять размер обрабатываемых строк динамически (Вы не будете ограничены 255-ю символами), при этом его синтаксис упрощает конкатенацию строк.

Добавлено через 7 минут
Вариант с использованием строк, с минимумом внесенных изменений относительно моего предыдущего кода, чтобы было понятно как может выглядеть реализация через std::string.

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
#include <iostream>
#include <string>
 
using std::cout;
using std::cin;
using std::string;
using std::stoi;
 
int main() {
  setlocale(LC_ALL, "Rus");
  string A = " ";
  cout << "Введите числа: ";
  string f = " ";
  char fplus = '+';
  char fravno = '=';
  int k = 0;
  int p = 0;
  size_t n = 0;
  cin >> n;
  for (size_t i = 0; i < n; ++i) {
    cin >> A;
    f += A;
    f += fplus;
    k = stoi(A);
    p += k;
  }
  f += fravno;
  cout << f << p;
}
Пруф работоспособности:
http://ideone.com/pWN24k
1
08.12.2015, 00:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2015, 00:03

Работа с матрицами. Ошибочка
class matrix{ private: double **Matrix; int Rows, Cells; public:...

Перегрузка оператора, ошибочка
bool MyString::operator==(const MyString &amp;rhs){ if (this-&gt;Length() !=...

Class Book ошибочка
Задания: Создать пустой проект и добавить в него файл main.cpp с функцией...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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