|
|
|
| Здравствуйте!
Я новичок в С++ и хотел бы разобраться.
Привожу код программы которая подсчитывает сумму отрицательных элементов массива.
В программе есть ошибка не могу найти.
В общем если ввели количество элементов массива предположим 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
(14.11.2009 в 22:18)
| | Спасибо!!!
Все работает! У вас одна лишняя строчка в программе "Введите элементы массива". | |
|
|
|
|
автор: cth (17.12.2009 в 15:52) |
|
|
для: megaboard
(21.11.2009 в 13:53)
| | помогите напишите плиз прогу для турбо паскаля (сумма отрицательных элементов масива)
спс за раниее | |
|
|
|