Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2010, 21:43   #1
koshkarjov
Пользователь
 
Аватар для koshkarjov
 
Регистрация: 31.01.2009
Сообщений: 26
Восклицание [C] Одномерные массивы

Доброго времени суток!

Помогите пожалуйста реализовать данный алгоритм:
в одномерном массиве, состоящем из n вещественных элементов,
вычислить сумму элементов массива, расположенных до последнего положительного элемента

Заранее большое спасибо!
koshkarjov вне форума Ответить с цитированием
Старый 28.09.2010, 00:11   #2
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
По умолчанию

как-то так, думаю, делается. На скорую руку набрал
Код:
void main(){
int a[55];int n,k=0;
	cout<<" input n:";
	cin>>n;
	cout<<" array:";
	for(int i=0;i<n;i++)
	cin>>a[i];
	int s;

for(int i=n;i>0;i--)
if(a[i]>0)
{k=i;
s=0;
for(int i=0;i<=k;i++)
s+=a[i];
}
cout<<"\n"<<s<<endl;
system("PAUSE");
}
zhenya.ya вне форума Ответить с цитированием
Старый 28.09.2010, 08:18   #3
D@rkD@iver
Форумчанин
 
Регистрация: 28.07.2009
Сообщений: 189
По умолчанию

там не int a float надо
пишу программы для студентов и школьников на Pascal, Delphi, C++, WINAPI, assembler
обучаю программированию на паскале(дистанционно);mail: hruslow@gmail.com
D@rkD@iver вне форума Ответить с цитированием
Старый 28.09.2010, 08:38   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Поиздеваюсь. )))
Предлагаю решить задачу без лишних циклов:
Код:
#include "stdafx.h"
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
    float a[10],q=0,w=0;
    for(int i=0;i<10;i++){
        std::cin>>a[i];
        q+=a[i];
        if (a[i]>0) w=q;
    }
    std::cout<<'\n'<<w;
    std::cin.get();
    return 0;
}
Проверял, вроде норм.
I'm learning to live...

Последний раз редактировалось Stilet; 28.09.2010 в 08:49.
Stilet вне форума Ответить с цитированием
Старый 29.09.2010, 16:54   #5
koshkarjov
Пользователь
 
Аватар для koshkarjov
 
Регистрация: 31.01.2009
Сообщений: 26
Восклицание

Спасибо за помощь, сделал по другому
Вот код, может кому нужен будет:
Код:
#include <stdio.h>
int main()
{
  double array[]={1,2,5,-1,4,-2,-5,1,-2,-6,-1};
  int array_s=sizeof(array)/sizeof(*array);
  double sum=0;
  int start=0;

  for(int i=array_s-1;i>=0;i--){
  if(!start){
  if(array[i]<=0)continue;
  start=1;continue;}
  sum+=array[i];}

  printf("%f\n",sum);
  return 0;
}
P.S.: Язык С надо было, а не С++
koshkarjov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
одномерные массивы kat000 Паскаль, Turbo Pascal, PascalABC.NET 0 11.06.2010 18:26
Одномерные массивы maloy-rom Общие вопросы C/C++ 11 23.12.2009 18:47
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
одномерные массивы Кнопка Общие вопросы C/C++ 2 17.12.2009 09:56
Одномерные массивы QEEN Паскаль, Turbo Pascal, PascalABC.NET 5 03.04.2009 12:25