|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.04.2011, 16:13 | #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. |
06.04.2011, 16:25 | #2 | |
Software Developer
Участник клуба
Регистрация: 01.03.2011
Сообщений: 1,098
|
Цитата:
ЗЫ код надо бы правильно оформить (кнопочка с "решеткой")
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв. Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062 |
|
06.04.2011, 16:27 | #3 |
Пользователь
Регистрация: 02.04.2011
Сообщений: 36
|
А что программа должна вычислять?
|
06.04.2011, 16:30 | #4 |
Пользователь
Регистрация: 14.11.2010
Сообщений: 26
|
вычислить это x1xn+x2xn-2+...+xnx1,
|
06.04.2011, 16:31 | #5 |
Пользователь
Регистрация: 14.11.2010
Сообщений: 26
|
имею ввиду что ответ непонятно как считает.
|
06.04.2011, 16:32 | #6 |
Форумчанин
Регистрация: 25.12.2010
Сообщений: 247
|
не воткнул что надо, но (ptr+2*n-1-i) явно находится за пределами массива
|
06.04.2011, 16:43 | #7 |
Пользователь
Регистрация: 14.11.2010
Сообщений: 26
|
извиняюсь) не правильно написал, в условии будет так x1xn+x2xn-1+...+xnx1
|
06.04.2011, 18:16 | #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. |
06.04.2011, 18:21 | #9 |
Форумчанин
Регистрация: 09.10.2010
Сообщений: 217
|
Код:
Ёж птица гордая, пока не пнешь не полетит.
|
06.04.2011, 19:05 | #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 |