![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 14.11.2010
Сообщений: 26
|
![]()
здравствуйте, не выходит с задачей, можете исправить, код сам идет, только вычисляет не правильно, вот условие: задача на языке СИ)
Даны натуральное число n, действительные числа x1...,xn. вычислить: x1xn+x2xn-1+...+xnx1 #include <stdio.h> #include <conio.h> #define n 4 main() { clrscr(); int x[n],i,s,*ptr; printf(" massiv\n"); for(i=0;i<n;i++) scanf("%d",&x[i]); ptr=x; s=0; for(i=0;i<n;i++) s+=*(ptr+i)**(ptr+2*n-1-i); printf("s=%d\n",s); getch(); return 0; } заранее спасибо. ( программа с использованием указателей) Последний раз редактировалось Narim; 06.04.2011 в 16:40. |
![]() |
![]() |
![]() |
#2 | |
Software Developer
Участник клуба
Регистрация: 01.03.2011
Сообщений: 1,098
|
![]() Цитата:
ЗЫ код надо бы правильно оформить (кнопочка с "решеткой")
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв. Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062 |
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 02.04.2011
Сообщений: 36
|
![]()
А что программа должна вычислять?
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 14.11.2010
Сообщений: 26
|
![]()
вычислить это x1xn+x2xn-2+...+xnx1,
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 14.11.2010
Сообщений: 26
|
![]()
имею ввиду что ответ непонятно как считает.
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 25.12.2010
Сообщений: 247
|
![]()
не воткнул что надо, но (ptr+2*n-1-i) явно находится за пределами массива
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 14.11.2010
Сообщений: 26
|
![]()
извиняюсь) не правильно написал, в условии будет так x1xn+x2xn-1+...+xnx1
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 02.04.2011
Сообщений: 36
|
![]()
Надо писать так:
for(i=0; i<n; i++) s+=*(ptr+i)**(ptr+n-1-i); А еще лучше так: for(i=0; i<(n/2); i++) s+=*(ptr+i)**(ptr+n-1-i); s *= 2; Последний раз редактировалось mikillskegg; 06.04.2011 в 19:27. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 09.10.2010
Сообщений: 217
|
![]() Код:
Ёж птица гордая, пока не пнешь не полетит.
|
![]() |
![]() |
![]() |
#10 | |
Пользователь
Регистрация: 02.04.2011
Сообщений: 36
|
![]() Цитата:
s+=*(ptr + n/2)*(*(ptr + n/2)); А еще можно сделать: s <<= 1; Последний раз редактировалось mikillskegg; 06.04.2011 в 19:27. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
указатели в С++ | Aleksa_ks | Помощь студентам | 3 | 27.04.2010 19:31 |
C++ указатели. | tshen | Помощь студентам | 3 | 16.04.2010 22:00 |
Указатели | Paul_AG | Общие вопросы C/C++ | 5 | 03.07.2009 14:22 |
[C] массивы, указатели, двойные указатели. | Iggel | Общие вопросы C/C++ | 5 | 05.05.2009 12:39 |