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

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

Восстановить пароль Регистрация
 
krestina
0 / 0 / 0
Регистрация: 13.05.2011
Сообщений: 67
10.06.2011, 12:01     указатели #1
произведение элементов массива, расположенных между первым и вторым нулевыми элементами.решение при помощи указателей
решите плз, а то с укзателями ну вообще никак

Добавлено через 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2011, 12:01     указатели
Посмотрите здесь:

C++ Указатели
Указатели C++
Указатели C++
Указатели C++
C++ указатели
C++ Указатели
Указатели С++ C++
C++ Указатели

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

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

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

я не силён в терминологию, но помоему то что сейчас написано и есть указатель а или charbufRus например. Для а память выделяется в стеке, а для charbufRus не знаю, наверно в сегменте данных. Я всегда называл их указателями на массив, хотелось бы послушать мнение гуру на сей счёт. Может быть имеется ввиду переделать так, чтобы память для массива выделить в куче с помощью маллока?
lemegeton
 Аватар для lemegeton
2908 / 1337 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
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);
}
Yandex
Объявления
11.06.2011, 11:34     указатели
Ответ Создать тему
Опции темы

Текущее время: 10:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru