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

С++ Указатели. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удалить повторяющиеся слова в строке http://www.cyberforum.ru/cpp-beginners/thread117633.html
Здравствуйте! Как удалить из строки типа char, введенной с помощью cin.getline(buf, 80), одинаковые слова (слова могут быть разделены одним или несколькоми пробелами и знаками табуляции)? В полученной строке слова должны быть разделены только одним пробелом. Можно записать неповторяющиеся слова в новую строку. Но я что-то не могу понять как это сдалать((. Помогите, кто знает :) Добавлено...
C++ Напечатать треугольник Паскаля — таблицу биномиальных коэффициентов дано целое неотрицательное число K. Напечатать треугольник Паскаля - таблицу биномиальных коэффициентов (C из m по n) для всех возможных целых значений m и n(0<=m<=n<=K) http://www.cyberforum.ru/cpp-beginners/thread117624.html
C++ Програма генерирующая массив
Написать программу на языках С и , которая генерирует массив, содержащий 40 целых случайных значений из заданного набора (при выводе элементов массива на экран располагает значения в 5 столбцов). Диапазон значений и количество элементов массива задать как символьные константы. Набор значений: 10, 20, 30, 40, 50. Помогите с масивом на языке "С". Буду крайне благодарен.
Перезагрузить функции C++
Задание Перезагрузить функции для разных типов входных данных, или создать шаблоны функций, или переопределить операции для отмеченных пользователем типов (новые типы задавать в виде структур). Перезагрузить операции “<<”, “>>” для вводу и вывода транспонированных целых и действительных матриц размерностью nxm.
C++ Определить количество классов эквивалентных столбцов данной прямоугольной матрицы. Столбцы считать эквивалентными, если равны множества их элементов. http://www.cyberforum.ru/cpp-beginners/thread117595.html
подскажите пожалуйста!!!на СИ Определить количество классов эквивалентных столбцов данной прямоугольной матрицы. Столбцы считать эквивалентными, если равны множества их элементов.
C++ Найти в массиве элемент с наименьшим значением Помогите пожалуйста решить задачи... 1) Сформировать массив заданного размера из целых случайных чисел. Найти в полученном массиве элемент с наименьшим значением. Сформировать новый массив из всех чисел, которые попали в промежуток от наименьшего значения до конца массива. Оба массива вывести на экран. 2) Сформировать массив заданного размера из целых случайных чисел. Найти в полученном... подробнее

Показать сообщение отдельно
insideone
Модератор
Автор FAQ
 Аватар для insideone
3623 / 901 / 48
Регистрация: 10.01.2010
Сообщений: 2,429
16.04.2010, 23:08     С++ Указатели.
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
#include <iostream>
#include "math.h"
using namespace std;
int sgn(int num){ // функция возращает значение -1 если число отрицательное и 1 если положительное
   return (num < 0)?-1:1;
}
 
int main(){
        int len = 0;
        cin >> len; // узнаем длинну массива
        if (len == 0) return 0; // нулевого массива быть не может
        int* A = new int[len]; // динамически выделяем память
        for (int i = 0; i < len; i++) // в цикле по массиву
                cin >> A[i]; // считываем в него данные
        int cur = sgn(A[0]), count = 0; // устанавливаем в cur знак первого числа
        for (int i = 0; i < len; i++) // в цикле по массив
                if ( abs(sgn(A[i])-cur) != 0 ) // если знак поменялся ( моудль от (знак текущего - знак предыдущего) будет либо 0 либо 2. если вышло 0 значит знак НЕ менялся если не ноль (2) то менялся
                {
                        cur = -cur; // если знак сменился обновим и скажем что теперь проверочный знак такой
                        count++; // увеличим счетчик смены знаков
                }
        cout << endl << count; // вывод подсчитаного количества смены знаков
return 0;
}
Добавлено через 3 минуты
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
#include <iostream>
 
using namespace std;
 
#define N 3
#define M 3
int main(){
   int A[N][M]; // статически выделяем 
   for (int i = 0; i < N; i++) // в цикле идет
           for (int j = 0; j < M; j++)
                cin >> A[i][j]; // заполнение
 
   bool flag = false; // нашли положительное число
        for (int i = 0; i < N; i++) // идем по строкам
        {
                flag = false; // мы только начали, поэтому ещё не могли найти положительные числа
                for (int j = 0; j < M; j++) // идем по столбцам
                {
                        if (A[i][j] >= 0) flag = true; // если нашли положительное число устанавливаем флаг в true
                }
                if ( flag == false ) // если ненашли положительное число 
                        memset(&A[i][0], 0, sizeof(int) * M); // устанавливаем в 0 M элементов начиная с A[i][0]
        }
 
  
   for (int i = 0; i < N; i++)
   {
           for (int j = 0; j < M; j++)
                cout << A[i][j] << " "; // вывод элемента
           cout << endl; // строки разлеяем переводом каретки
   }
return 0;
}
Так нормально?
 
Текущее время: 08:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru