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

Работа со строками - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перегрузка постфиксной и префиксной операции инкремента http://www.cyberforum.ru/cpp-beginners/thread914692.html
Здравствуйте! У меня возник вопрос: почему выводит разный результат, казалось бы, одинаковый код Вот здесь выводит как должно: #include <iostream> class Test { friend std::ostream& operator<<( std::ostream &out, const Test &a ) { out << a.x; return out;
C++ выводит не правильные символы только начал изучать С++.помогите пожалуйста исправить ошибку в коде, и если можно объяснить, так как я новичок.Спасибо. // #include "stdafx.h" #include "stdio.h" #include <iostream> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread914685.html
C++ Автоматическое редактирование кода в Visual Studio Express
Скажите пожалуйста, есть ли в Visual Studio Express, автоматическое редактирование кода? Т.Е. как в Embarcadero RAD Studio XE горячая клавиша ctrl + D (Format Sourse) - текстовый редактор стандартизирует код программы, подобное не могу найти в Visual Studio.
Оптимизация программы C++
Ув. обыватели, Вчера написал "Калькулятор", но так как я ещё зеленый в программировании на С++, прошу вас показать как и где можно оптимизировать нижеизложенный код. #include <iostream> using namespace std; double add(); double sub(); double mult(); double div();
C++ Матрица, найти ошибку http://www.cyberforum.ru/cpp-beginners/thread914652.html
// Дана прямоугольная таблица a. Найти минимальный из максимумов строк. #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <stdlib.h> typedef int *pint; //новый тип данных указатель на указатели int main() {
C++ работа массивов си ++ При изучении работы массивов возник вопрос. В первой части отрывка кода производится присвоение массиву "from" значений и вывод их на экран(от 0 до 49). Затем вывожу на экран эти значения с добавлением нумерации, но выводятся не те же самые значения, а значения, соответствующие нумерации...Почему так?! int q, w,from; for (q=0; q<50; q=q+1) { from=q; cout<< from<< '\n';}... подробнее

Показать сообщение отдельно
1richard
15 / 5 / 2
Регистрация: 22.06.2013
Сообщений: 25
03.07.2013, 17:02     Работа со строками
Первое, что пришло на ум, так это вот этот код:
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <iostream>
#include <conio>
#include <string>
#include <stdio>
 
int CharToInt(char *&a)
{
 int n = 0;
 int mass[9];
 while(*a != ' ' && *a != '\0')
 {
  mass[n] = (int)*a-48;
  a++;
  n++;
 }
 int Result = 0;
 for(int i = 0, k = 1; i < n; i++)
 {
  Result += mass[n-i-1]*k;
  k*=10;
 }
 return Result;
}
 
void SearchAndCopy(char *&a, string &b)
{
 while(*a!=' ')
 {
  b+=*a;
  a++;
 }
}
 
int FindMaxMark50(int *mark, int *SchoolNumber, int number)
{
 int MaxMark = 0;
 int MaxIndex = 0;
 for(int i = 0; i < number; i++)
 {
  if(SchoolNumber[i] == 50)
   if(mark[i] > MaxMark)
   {
    MaxMark = mark[i];
    MaxIndex = i;
   }
 }
 return MaxIndex;
}
 
void OutResult(int MaxIndex, string *surname, string *name, int *mark, int *SchoolNumber, int n)
{
 int NumberOfMaxMarks = 0;
 int SecondMaxIndex;
 for(int i = 0; i < n; i++)
 {
  if(mark[i] == mark[MaxIndex] && SchoolNumber[i] == 50)
  {
   NumberOfMaxMarks++;
   if(MaxIndex != i)
    SecondMaxIndex = i;
  }
 }
 if(NumberOfMaxMarks == 1)
  cout<<surname[MaxIndex]<<" "<<name[MaxIndex]<<endl;;
 if(NumberOfMaxMarks == 2)
 {
  cout<<surname[MaxIndex]<<" "<<name[MaxIndex]<<endl;
  cout<<surname[SecondMaxIndex]<<" "<<name[SecondMaxIndex]<<endl;
 }
 if(NumberOfMaxMarks > 2)
  cout<<NumberOfMaxMarks;
}
 
void main()
{
 int n;
 cin >> n;
 string *surname = new string [n];
 string *name = new string [n];
 int *SchoolNumber = new int [n];
 int *mark = new int [n];
 char buffer[255];
 char *point;
 for(int i = 0; i < n; i ++)
 {
  gets(buffer);
  point = buffer;
  SearchAndCopy(point, surname[i]);
  point++;
  SearchAndCopy(point, name[i]);
  point++;
  SchoolNumber[i] = CharToInt(point);
  point++;
  mark[i] = CharToInt(point);
 }
 int MaxIndex;
 MaxIndex = FindMaxMark50(mark, SchoolNumber,n);
 OutResult(MaxIndex, surname, name, mark,SchoolNumber,n);
 getch();
}
 
Текущее время: 06:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru