ПОМОГИТЕ!С++ ! одномерный массив!

Одномерный массив Y(15) считать из файла txt (файл создать самим). Найти Сумму неположительных , произведение положительных элементов, поменять местами первый и последний элементы. Вот начал программу помогите закончить!!сам массив ниже!
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <math.h>
 
using namespace std;
 
ifstream f("math.txt"); 
 
 
int _tmain(int argc, _TCHAR* argv[])
{int Y[15],i,S,k;
f.open ("math.txt",ios::out);
S=0;
k=0;
for (i=0;i<15;i++)
    {f>>Y[i];
if (Y[i]<0)
    S=S+Y[i];
k=k++;}
cout<<S<<endl;
cout<<k<<endl;
    return 0;
}
14 ответов

Sergey123321, k=k++ это что такое? Если хотели увеличить переменную к на 1, то достаточно k++; также в цикле добавьте if (y[i] > 0) umn *= y[i]; а обменяете первый с последним с помощью swap(y[0],y[14]);
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <math.h>
 
using namespace std;
 
ifstream f("math.txt"); 
 
 
int _tmain(int argc, _TCHAR* argv[])
{int Y[15],i,S,k;
int umn = 1;
f.open ("math.txt",ios::out);
S=0;
k=0;
for (i=0;i<15;i++)
    {f>>Y[i];
if (Y[i]<0)
    S=S+Y[i];
if (y[i] > 0) umn *= y[i];
k=k++;}
swap(y[0],y[14]);
cout<<S<<endl;
cout<<k<<endl;
    return 0;
}


В чём проблема?


k=k++ это что такое?
это "неопределенное поведение"


ValeryS,


Да но программа по прежнему работает неверно ,показывает, что сумма неположительных равна (-12)!В чем дело?И k-это счетчик,который должен считать число неположительных и он кстати тоже не работает!


Во-первых ты файл открываешь для записи, во-вторых попробую предположить что имя твоего файла имеет двойное расширение.


Sergey123321, вы в след раз хоть говорите какие ошибки в коде


Имя исправил,не помогло.А вот как считать txt задействовав библиотеку fstream я не знаю. Можете подсказать?


И k-это счетчик,который должен считать число неположительных и он кстати тоже не работает!
еще бы он работал он к if (Y[i]<0) отношения не имеет от тупо повторит i
Да но программа по прежнему работает неверно показывает что сумма неположительных равна -12!
сделай после
f>>Y[i];
cout<< Y[i];
и посмотри на экране правильно ли у тебя считываются данные


Sergey123321, F.open("text.txt");


#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <math.h>
 
using namespace std;
 
ifstream F("text.txt"); 
 
 
int _tmain(int argc, _TCHAR* argv[])
{int Y[15],i,S,k;
int umn = 1;
F.open ("text.txt",ios::out);
S=0;
k=0;
for (i=0;i<15;i++)
    {F>>Y[i];
cout<<"Y="<<Y[i]<<endl;
 
if (Y[i]<=0)
    k=k++;
    S=S+Y[i];
if (Y[i] > 0) umn *= Y[i];
}
swap(Y[0],Y[14]);
cout<<"S="<<S<<endl;
cout<<"k="<<k<<endl;
    return 0;
}
k=15 Y=858993... S=-12 Ничего не понимаю...


Sergey123321, файл правильно открыли?


в каком смысле?


Y=858993...
ну не читает у тебя файл в массиве мусор почему не читает проверяй, может не открылся, может не найден, может открылся но не на чтение после файловых операций обязательно проверка нужна