Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2015, 19:57   #1
Тима4930
Пользователь
 
Регистрация: 28.11.2015
Сообщений: 13
По умолчанию Где ошибочка в массиве

Здравствуйте.Помогите пожалуйста исправить программу.Она работает,запускается. Работает так: вводим кол-во чисел сколько хотим ввести,например 3.
1+2+3=6
так и должно
но выводит 1+2+3=60
Оно каким-то образом приписывает ноль в массиве.
Код:
#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();
}
Изображения
Тип файла: png Screenshot_3.png (4.8 Кб, 36 просмотров)
Тима4930 вне форума Ответить с цитированием
Старый 07.12.2015, 20:35   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,759
По умолчанию

Цитата:
Оно каким-то образом приписывает ноль в массиве.
Не оно, а вы. Смотрите магию:
Код:
cout << ... << strcat_s(f, fravno);
p51x вне форума Ответить с цитированием
Старый 07.12.2015, 20:44   #3
Тима4930
Пользователь
 
Регистрация: 28.11.2015
Сообщений: 13
По умолчанию

Как я понял всё дело в конкатенации строк,я что-то сделал не так,но помогите исправить пожалуйста
Тима4930 вне форума Ответить с цитированием
Старый 07.12.2015, 20:56   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,759
По умолчанию

Не правильно вы поняли. strcat_s возвращает код ошибки своей работы, если все хорошо - 0, а вы его и выводите.
p51x вне форума Ответить с цитированием
Старый 07.12.2015, 21:00   #5
Тима4930
Пользователь
 
Регистрация: 28.11.2015
Сообщений: 13
По умолчанию

А как произвести конкатенацию строк без вывода этого нуля?
Тима4930 вне форума Ответить с цитированием
Старый 08.12.2015, 00:49   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

припоминаю, что писал для соседнего форума такую хренотень, причём, без использования цикла. И на паскале. но не выложил.



Код:
function GetSum(const AFrom, ATo: Integer): Int64;
var
  total, middle: Integer;
begin
  if (ATo = AFrom)
    then exit(AFrom);
  total:= 1 + ATo - AFrom;
  middle:= Short(total > 1) * (total and 1) * (AFrom + (ATo - AFrom) div 2);
  Result:= (total div 2) * (AFrom + ATo) + middle;
end;
Изображения
Тип файла: png 21.png (4.8 Кб, 68 просмотров)
Тип файла: png 22.png (5.0 Кб, 35 просмотров)
Тип файла: png 23.png (5.2 Кб, 64 просмотров)
Тип файла: png 24.png (5.1 Кб, 52 просмотров)
Тип файла: png 25.png (5.2 Кб, 57 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 08.12.2015, 09:16   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,759
По умолчанию

Цитата:
А как произвести конкатенацию строк без вывода этого нуля?
Да просто не выводить его.
Код:
cout << f << p;
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ В квадратном массиве из n строк, где n— нечетное число, все элементы различны GoloArt Помощь студентам 0 21.05.2014 21:14
free pascal. Где-то Ошибка. Бинарный поиск в двумерном динамическом целочисленном массиве. Решетова Алена Помощь студентам 2 15.12.2012 06:22
ошибочка osichev Помощь студентам 3 05.07.2012 12:31
где-то ошибочка.... ol`via Общие вопросы C/C++ 6 23.10.2010 14:48
Где мой кося в динамическом массиве? Utkin Общие вопросы Delphi 9 09.07.2010 15:35