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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
krestina
0 / 0 / 0
Регистрация: 13.05.2011
Сообщений: 67
#1

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

10.06.2011, 12:01. Просмотров 337. Ответов 2
Метки нет (Все метки)

произведение элементов массива, расположенных между первым и вторым нулевыми элементами.решение при помощи указателей
решите плз, а то с укзателями ну вообще никак

Добавлено через 34 минуты
вот решеная задача без указателей, помогите переделать под указатели
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
#include <stdio.h>          
#include <conio.h>
#include <windows.h>    
 
char* Rus(const char* text);
charbufRus[255];
 
void main(void){
    int a[10]={0,2,3,4,0,6,7,8,9,0};    
    int i,n1,n2;
    long pr=1;
    for(i=0;i<10;i++) {
        if(a[i]==0){n1=i; break;}       
    }
 
    for(i++;i<10;i++) {
        if(a[i]==0){n2=i; break;}       
    }
 
    for(i=n1+1;i<n2;i++) {
 
        pr*=a[i];           }
 
    printf(Rus("\n Произведение элементов: %ld "), pr);
    }
 
char* Rus (const char* text)
{
    CharToOem(text, bufRus);
    returnbufRus;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2011, 12:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос указатели (C++):

Указатели и указатели на указатели, а также типы данных - C++
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

Через указатели на указатели посчитать сумму двух чисел и записать в третье - C++
1. Через указатели на указатели посчитать сумму двух чисел и записать в третье. 2. Написать примитивный калькулятор, пользуясь только...

Есть три переменные. Используя указатели на указатели, поменять значение максимальной и минимальной переменной - C++
Мой код. #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include&lt;iomanip&gt; using namespace std; void min_max(int*pa, int*pb,...

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов? - C++
Есть массив int **mas; mas=new int*; // выделил место под пять строк, верно ? mas=new int;// выделил для первой строки матрицы два...

Отсортировать массив и вывести на экран (массивы и указатели на указатели) - C++
Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s- результат сессии F студента. Отсортировать массив S по...

Указатели на слонов или А зачем нужны указатели? - C++
Знаю что таких вопросов было уйма, но я так и не нашел ответа на свой вопрос. Для чего нужны указатели? Что такое указатели я знаю, это...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
10.06.2011, 13:48 #2
помоему у твоей апишной функции два прототипа и по умолчанию в VS подразумевается Wide а не аски, поэтому позволю усомниться в том что это компилируется.

Цитата Сообщение от krestina Посмотреть сообщение
charbufRus[255];
это меня тоже смущает, в VS точно не прокатит, да и тип по умолчание вроде как инт...

я не силён в терминологию, но помоему то что сейчас написано и есть указатель а или charbufRus например. Для а память выделяется в стеке, а для charbufRus не знаю, наверно в сегменте данных. Я всегда называл их указателями на массив, хотелось бы послушать мнение гуру на сей счёт. Может быть имеется ввиду переделать так, чтобы память для массива выделить в куче с помощью маллока?
0
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
11.06.2011, 11:34 #3
Ну вот как-то так. Там оверфлоу даже лонг инта очень быстро набирается.
Если второго нуля нет, умножаться будет до конца массива.
Если ни одного нуля нет, будет 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2011, 11:34
Привет! Вот еще темы с ответами:

Написать программу сортировки через указатели на указатели - C++
Вот моя программа #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string&gt; using namespace std; //Сортировка &quot;пузырьком&quot;. ...

Используются ли на практике указатели на указатели объектов? - C++
Имеются ввиду указатели именно на объекты, а не динамические массивы. Например такой: Object** obj; А как насчёт такого: Object***...

Указатели и массивы. Указатели и функции - C++
Никак не разберусь с указателями на функцию. Пишу в Visual Studio. Надо написать функцию Compress() с использованием указателей, которая...

Константные указатели и указатели на константу - C++
Чем они, собственно говоря, отличаются? Поясните, пожалуйста. Не знаю, как так получилось, что в разных источниках - разные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru