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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2010, 04:04   #1
Fox-mts
Новичок
Джуниор
 
Регистрация: 11.04.2010
Сообщений: 1
По умолчанию Одномерный массив что я делаю не так

вот такая работа:
В одномерном массиве, состоящем из n целых элементов, вычислить:
1) минимальный по модулю элемент массива;
2) сумму модулей элементов массива, расположенных после первого элемента, рав-ного нулю
вот моя программа(делал в Visual Studio 2005):

Код:
#include "stdafx.h"
#include "iostream"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{  setlocale (0,"rus");
        int i,n, sum;
        cout<<"Введите количество элементов в массиве:\n";
        cin>>n;
        float *a=new float [n];
        cout<<"Введите 1 элемент массива: ";
        cin>>a[0];
        float min=a[0];
        for (i=2; i<=n; i++) 
        {       
                cout<<"Введите "<<i<<" элемент массива: ";
                cin>>a[i];
                if (a[i]<min) 
                {
                min=a[i];
                }
        }
        cout<<"Минимальный элемент:\n"<<min;

		for (i=0,sum=0;i<n; i++)
		
			sum+=a[n];

		cout <<"Сумма элементов:\n" << sum ; 
		       system ("pause");
       
		  
	return 0;
}
проблема такая: он не правильно считает сумму элементов, почему? хотелось бы знать...

Последний раз редактировалось ACE Valery; 18.04.2011 в 21:31.
Fox-mts вне форума Ответить с цитированием
Старый 11.04.2010, 08:44   #2
Bearw08
Boom-boom)
Форумчанин
 
Аватар для Bearw08
 
Регистрация: 02.02.2009
Сообщений: 500
По умолчанию

Код:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int n,sum = 0,nullNum = -1;

cout << "Введите количество элементов в массиве:\n";
cin >> n;
int *a = new int[n];
cout << "ВВедите 1 элемент массива:\n";
cin >> a[0];
int min =  abs(a[0]);

for (int i = 1; i < n; i++)
{
    cout << "Введите " << i + 1 <<" элемент массива: ";
    cin >> a[i];

    if (abs(a[i]) < abs(min))
        min = abs(a[i]);
    if(a[i] == 0 && nullNum == -1) nullNum = i;



}
cout<<"минимальный элемент по модулю равен: "<< min <<endl;

if(nullNum != -1)
    for(int i = nullNum;i < n; i++)
        sum+=abs(a[i]);


cout <<"Сумма элементов:\n" << sum ;
return 0;
}
¡ʁɔvʎнdǝʚǝdǝu dиw

Последний раз редактировалось Bearw08; 11.04.2010 в 08:55.
Bearw08 вне форума Ответить с цитированием
Старый 11.04.2010, 08:50   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Код:
sum+=a[n];
1. А потому что не надо к сумме прибавлять только один элемент постоянно. У вас счетчик цикла кто?
2. Прочтите условие - у вас не просто "найти сумму всех элементов"
p51x вне форума Ответить с цитированием
Старый 18.04.2011, 19:17   #4
pashqa
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 37
По умолчанию

А не могли бы вы помочь с этой же задачей,только переделать ее на Паскаль? буду очень признателен
pashqa вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IBExpert, не могу понять что делаю не так! в чём проблема.... katia0017 SQL, базы данных 10 15.01.2010 18:33
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Что не правильно делаю с free(); Winston123 Общие вопросы C/C++ 25 15.06.2009 21:21
Visual C++: Что не так делаю? N!ckeL Помощь студентам 8 19.05.2008 11:28