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

Сложение чисел ! недопуск на екзамен ! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ переписать кусок проги с cin/cout на printf/scanf http://www.cyberforum.ru/cpp-beginners/thread89041.html
переписать кусок проги с cin/cout на printf/scanf очень срочно, заранее спасибо char snn; int y1=1990, y2=1999; printf("===Поиск===\n\nВведите имя автора, год начала и год конца"); cin>>snn>>y1>>y2; while(true) { if (feof(f)) break; fread(&a, sizeof(info), 1, f); if (a.year>y1 && a.year<y2){
C++ Вывод в документ: китайские иероглифа вместо русских или английских букв В коде какато фигня. Он написан и по идее работает, но вот с языком вывода проблема. Когда записываешь что-то в документ он записывает какими то китайскими иероглифами. Хотелось бы это дело исправить, помогите пожалуйста. #define _CRT_SECURE_NO_DEPRECATE #include <stdio.h> #include <conio.h> #include <locale.h> #include <string.h> http://www.cyberforum.ru/cpp-beginners/thread89015.html
Массив и строка. C++
Есть 2 задачи, помогите решить: 1. Написать программу, которая проверяет, находится ли число в массиве. Массив динамический, одномерный (его я сам введу, помогите с остальным) 2. Написать программу, которая из введенной строки формирует новую строку из цифр первой строки.
C++ Прогрессии
Здраствуйте. Мне очень нужна ваша помощь. Спасибо. 1. Является ли последовательность арифметической прогрессией? (Если да, вывести а1 и d) 2. Является ли последовательность геометрической прогрессией? (Если да, вывести b1 и q) 3. Ввести с клавиатуры число и определить порядковый номер первого числа в массиве, равного введенному.
C++ N!= 1*2*3*...*N http://www.cyberforum.ru/cpp-beginners/thread89007.html
Привет всем. Нужна помощь. Буду очень благодарен. Заранее огромное СПАСИБО. 1. Ввдится N. Необходимо найти, на сколько нулей оканчивается число N!= 1*2*3*...*N. 2. Даны натуральные числа n, a1, a2,..., an. (n<10000). Определить наименьшее натуральное число, отсутствующее в этой последовательности. 3. Ввести с клавиатуры число и определить сколько раз оно встречается в массиве.
C++ Отслеживание нажатия клавиш. #include <iostream> #include <string> #define FOR(i,a,b) for (int i(a), _n(b); i < _n; ++i) using namespace std; int main() { string s = "", d; подробнее

Показать сообщение отдельно
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
25.01.2010, 04:36     Сложение чисел ! недопуск на екзамен !
medVet, держи:
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream>
#include <assert.h>
 
char* Sum(const char* first, const char* second)
{
  assert(first );
  assert(second);
 
  int first_len  = static_cast<int>(strlen(first ));
  int second_len = static_cast<int>(strlen(second));
  int sum_len    = (first_len > second_len ? first_len : second_len) + 1;
 
  char* sum = new char[sum_len + 1];
 
  sum[sum_len] = '\0';
 
  int first_index  = first_len  - 1;
  int second_index = second_len - 1;
  int sum_index    = sum_len    - 1;
 
  int rest = 0;
 
  while(first_index >= 0 && second_index >= 0){
    int tmp = (first[first_index] - static_cast<int>('0')) + 
      (second[second_index] - static_cast<int>('0')) + rest;
 
    sum[sum_index] = static_cast<char>(tmp % 10) + '0';
 
    rest = tmp / 10;
 
    --first_index;
    --second_index;
    --sum_index;
  }
 
  while(first_index >= 0){
    int tmp = first[first_index] - static_cast<int>('0') + rest;
 
    sum[sum_index] = static_cast<char>(tmp % 10) + '0';
 
    rest = tmp / 10;
 
    --first_index;
    --sum_index;
  }
 
  while(second_index >= 0){
    int tmp = second[second_index] - static_cast<int>('0') + rest;
 
    sum[sum_index] = static_cast<char>(tmp % 10) + '0';
 
    rest = tmp / 10;
 
    --second_index;
    --sum_index;
  }
 
  sum[sum_index] = static_cast<char>(rest) + '0';
 
  return sum;
}
int main()
{
  char first[]  = "234";
  char second[] = "81";
 
  char* sum = Sum(first, second);
 
  std::cout << sum << std::endl;
 
  delete [] sum;
 
  return 0;
}
Единственный недочет - при необходимости добавляет символ 0 в начало результата - как в примере.
В коде присутствуют излишние переменные (которые, поколдовав, можно убрать), оставленные для наглядности.
Результат: http://codepad.org/B9VBRd9x
Надеюсь не слишком поздно написал.
 
Текущее время: 03:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru