Массивы, но массивы не использовать.

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Массивы, но массивы не использовать.

Re: Массивы, но массивы не использовать.

Vanush » 18 янв 2008, 20:40

Так еще лучше
# include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int S,P;
int n,a;
S=0;
P=1;
cout<<"Vvedite n=";
cin>>n;
for (int i=1;i<=n;++i)
{
cout<<"a=";
cin>>a;
if (i%2)
{
P*=a;
}
else
{
S+=a;
}
}
cout<<S<<endl;
cout<<P<<endl;
return 0;
}

Re: Массивы, но массивы не использовать.

Бабочка » 18 янв 2008, 16:18

Да, спасибо, так удобнее. :)

Re: Массивы, но массивы не использовать.

Romeo » 18 янв 2008, 14:37

Советую использывать переменную типа bool вместо переменной j. Этот тип был придуман именно для тех случаев, когда переменная может принимать ровно два разных значения: назовём их условно true и false.

В случае, если ты сделаешь j типа bool, то многие вещи упростяться. Вот исправленный фрагмент кода:

Код: Выделить всё

# include <iostream.h>
# include <conio.h>
# include <stdio.h>

int main()
{
   int S,P;
   int N,i,a;
   S=0;
   P=1;

   bool j = false;

   cout<<"Vvedite chisla N"<<endl;
   cin>>N;
   for (i=1;i<=N;i+=1)
   {
      cout<<"a="<<endl;
      cin>>a;
      if (j)
      {
          S+=a;   
      }
      else
      {
          P*=a;
      }

     j = !j;
   }

   cout<<S;
   cout<<P;
   getch();
   return 0;
}

Re: Массивы, но массивы не использовать.

Albor » 17 янв 2008, 18:30

Объявление и инициализацию переменной можно объединить в одной строке: int S(0); int P(1); - здесь, переменная инициализируется в момент создания. Вместо конструкции i+=1; лучше использовать i++; или ++i; в операторе cout<<"a="<<endl;, если убрать endl последующий ввод данных будет размещаться сразу за знаком равно - так, наверное, удобнее для восприятия. А последний вывод в программе склеит два числа в одно - вот здесь бы endl не помешал.

Re: Массивы, но массивы не использовать.

Бабочка » 17 янв 2008, 16:07

Спасибо большое. но вот мой вариант решения:

Код: Выделить всё

# include <iostream.h>
# include <conio.h>
# include <stdio.h>
int main()
{
int S,P;
int N,i,j=0,a;
S=0;
P=1;
cout<<"Vvedite chisla N"<<endl;
cin>>N;
for (i=1;i<=N;i+=1)
 {
cout<<"a="<<endl;
cin>>a;
if (j==0)
  {
  j++;
  S+=a;   
 }
else
   {
   j--;
   P*=a;

    };
  };
  cout<<S;
  cout<<P;
getch();
return 0;
}

Re: Массивы, но массивы не использовать.

Romeo » 17 янв 2008, 13:48

Код: Выделить всё

#include <iostream.h>
#include <conio.h>
#include <stdio.h>

int main()
{
   int S, P;
   int a, ai, i;

   S = 0;
   P = 1;

   cout<<"Vvedite kolichestvo chisel: "<< endl;
   cin << a;

   for (i = 0; i < a; ++i)
   {
      cout << "Vvedite a[" << i + 1 << "]: ";
      cin >> ai;

      if (i % 2)
      {
         P *= ai;
      }
      else
      {
         S += ai;
      }
   }

   cout << "Summa: " << S << end;
   cout << "Proizvedenie: " << P <<end;
   getch();

   return 0;
}

Re: Массивы, но массивы не использовать.

Vanush » 17 янв 2008, 13:44

Это пригодиться?

Код: Выделить всё

#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
	int a;
	cout<<"Vvedite a: ";
	cin>>a;
	int s=0;
	for(int i=1;i<=a;i+=2)
		s+=i;
	cout<<s<<endl;
	int p=1;
	for(int i=2;i<=a;i+=2)
		p*=i;
	cout<<p<<endl;
	return 0;
}

.

BBB » 17 янв 2008, 12:36

Вообще не понятен алгоритм, который реализован:

Тут считается сумма целых чисел от 2 до a включительно:
Бабочка писал(а): for (i=2;i<=a;i++)
{S=S+i;}
cout<<S;
Тут - произведение целых чисел от 2 до a включительно:
for (i = 2;i<=a;i++)
{P=P*i;}
А насчет ввода, то я вообще вижу, что во время рабоут ввод запрашивается лишь два
раза:

cin>>a;
getch();

Как тут вообще вводится последовательность чисел???

Еще хотелось бы уточнить термины "парные члены" и "непарные члены". Что это такое?

Re: Массивы, но массивы не использовать.

Бабочка » 17 янв 2008, 08:33

Все равно выдает непонятное число. ВВожу 2,3,1-результат 278?

Re: Массивы, но массивы не использовать.

Vanush » 16 янв 2008, 23:25

Напиши for(i=2;i<=a;i+=2)
A что касается i%2==1 это возвращает true или false
Прочитай for

Вернуться к началу