Форум программистов, компьютерный форум, киберфорум
Наши страницы

указатели - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ указатели http://www.cyberforum.ru/cpp-beginners/thread317193.html
произведение элементов массива, расположенных между первым и вторым нулевыми элементами.решение при помощи указателей решите плз
C++ Не работает #pragma comment Пишу так #pragma comment(lib,libgdi32.a) но библиотека не включается. Почему? http://www.cyberforum.ru/cpp-beginners/thread317179.html
Используя разложение e^x в ряд. Вычислить e^5 C++
Доброго всем времени суток. Прошу помочь написать программу в TC. У нас скоро экзамен, а как это делается у меня нет даже идей
C++ Упоавление текстом
Всем привет! Помогите пожалуйста, я вообще не понимаю что и как нужно сделать. Очень надо! Заранее спасибо. Вот задание: На экране в центре напечатана буква (латиница), а сверху - побитно байт...
C++ Прокомментируйте код http://www.cyberforum.ru/cpp-beginners/thread317134.html
#include <iostream> using namespace std; void PrintBit(unsigned a); int main() { int x, y, m, n;
C++ ошибка в программе скажите где ошибка и как её исправить? #include<stdio.h> #include<conio.h> #include<string.h> #include<stdlib.h> #include<process.h> void menu(); void vvod(char *); void res(char *); void... подробнее

Показать сообщение отдельно
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
11.06.2011, 11:34
Ну вот как-то так. Там оверфлоу даже лонг инта очень быстро набирается.
Если второго нуля нет, умножаться будет до конца массива.
Если ни одного нуля нет, будет 1.
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
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  int array_size = 10 + rand() % 5;
  int *array = (int*)malloc(array_size * sizeof(int));
 
  int *begin = array, *end = array + array_size, *i;
 
  // заполнение рандомом и вывод всего массива
  for (i = begin; i < end; ++i)
    printf("%4d", *i = rand() % 10);
  printf("\n");
 
  long int result = 1;
  i = begin;
  // ищется первый ноль или конец массива
  while (i != end && *i++ != 0);
  // до следующего нуля или конца массива
  while (*i != 0 && i != end) {
    printf("%ld * %d\n", result, *i);
    result *= *i++;
  }
 
  printf("result: %ld\n", result);
 
  free(array);
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru