Форум: Форум C++Разное
Новые темы: 00
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Найти сумму отрицательных элементов массива
 
 автор: megaboard   (14.11.2009 в 22:18)   письмо автору
 
 

Здравствуйте!
Я новичок в С++ и хотел бы разобраться.
Привожу код программы которая подсчитывает сумму отрицательных элементов массива.
В программе есть ошибка не могу найти.
В общем если ввели количество элементов массива предположим 4, то 3 элемента он суммирует, а 4й не учитывает.
И еще если массив состоящий, например, из четырех элементов содержит хотя один положительный элемент, то программа его тоже суммирует.
Помогите исправить ошибку!


#include <stdio.h>
#pragma hdrstop
#include<iostream.h>
#include "windows.h"
//---------------------------------------------------------------------------
#pragma argsused
int rustext(char str[])
{
CharToOem(str,str);
cout << str;
}
int main(int argc, char* argv[])
{
 int n;
rustext ("Введите количество элементов "); cin >> n;
int i, ineg;
float sum, *a = new float [n];
rustext ("Введите элементы массива ");
for (i = 0; i < n-1; i++) cin >> a[i];
for(i = 0; i < n-1; i++) cout << a[i] << ' ';
for(i = 0; i < n-1; i++)  if (a[i] < 0) ineg = i;
for (sum = 0, i = ineg - i; i < n-1; i++) sum += a[i];
rustext ("Сумма ");
cout << sum;
system("pause");
return 0;
}

  Ответить  
 
 автор: heed   (16.11.2009 в 13:33)
 
   для: megaboard   (14.11.2009 в 22:18)
 

в DevCpp-компиляторе скомпилировалось рабочее exe только с такой функцией

#include<iostream>
#include "windows.h"
//---------------------------------------------------------------------------
#pragma argsused
#pragma hdrstop

using namespace std;

int rustext(char str[])
{
 char temp[256];
 CharToOem(str,temp);
 cout<<temp;
 return 0;
}

int main(int argc, char* argv[])
{
int n, i;

rustext ("Введите количество элементов ");
 cin >> n;
float sum, *a = new float [n];
 rustext ("Введите количество элементов ");
rustext ("Введите элементы массива\n");
for (i = 0; i < n; i++) cin >> a[i];
for(i = 0; i < n; i++) cout << a[i] << ' ';

for(i = 0; i < n; i++) if (a[i] < 0)  sum += a[i];
rustext ("Сумма ");
cout << sum;
system("pause");
return 0;
}

а VC9 вообще только CharToOem((LPCWSTR) str, temp); захотело видать с двухбайтной кодировкой настроилось. и просит сделать сразу float sum=0.0, ....

  Ответить  
 
 автор: megaboard   (21.11.2009 в 13:53)   письмо автору
 
   для: megaboard   (14.11.2009 в 22:18)
 

Спасибо!!!
Все работает! У вас одна лишняя строчка в программе "Введите элементы массива".

  Ответить  
 
 автор: cth   (17.12.2009 в 15:52)
 
   для: megaboard   (21.11.2009 в 13:53)
 

помогите напишите плиз прогу для турбо паскаля (сумма отрицательных элементов масива)
спс за раниее

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования