+ Ответить в теме
Страница 1 из 2
1 2 ПоследняяПоследняя
Показано с 1 по 10 из 11

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

  1. #1
    coder Бабочка is on a distinguished road
    Регистрация
    09.01.2008
    Возраст
    37
    Сообщений
    23
    Вес репутации
    11

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

    Отредактируйте, пожалуйста мой код!!
    Задание: Даны положительные числа N,a1,...,aN. Используя только элементарные матем. операции(+,-,*,/), определить сумму непарных и произведение парных членов последовательности а1,...,аN. Массивы не использовать.
    Написала код, но он сумму считает не правильно, а произведение вообще не считает.
    Скажите, пожалуйста,что в нем не так!!!
    Код :
    1. # include <iostream.h>
    2. # include <conio.h>
    3. # include <stdio.h>
    4. int main()
    5. {
    6. int S,P;
    7. int a,i;
    8. S=0;
    9. P=1;
    10. cout<<"Vvedite chisla a"<< endl;
    11. cin>>a;
    12. for (i%2==1;i<=a;i++)
    13. {S=S+i;}
    14. cout<<S;
    15. for (i%2==0;i<=a;i++)
    16. {P=P*i;}
    17. cout<<P;
    18. getch();
    19. return 0;
    20. }
    Последний раз редактировалось Romeo; 17.01.2008 в 13:17. Причина: Декорация кода

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    programmer Vanush is on a distinguished road
    Регистрация
    10.01.2008
    Сообщений
    50
    Вес репутации
    11

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

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

  4. #3
    coder Бабочка is on a distinguished road
    Регистрация
    09.01.2008
    Возраст
    37
    Сообщений
    23
    Вес репутации
    11

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

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

  5. #4
    system architect BBB is on a distinguished road
    Регистрация
    27.12.2005
    Сообщений
    1,272
    Вес репутации
    15

    По умолчанию .

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

    Тут считается сумма целых чисел от 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();

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

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

  6. #5
    programmer Vanush is on a distinguished road
    Регистрация
    10.01.2008
    Сообщений
    50
    Вес репутации
    11

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

    Это пригодиться?
    Код :
    1. #include <iostream>
    2. using std::cin;
    3. using std::cout;
    4. using std::endl;
    5. int main()
    6. {
    7.     int a;
    8.     cout<<"Vvedite a: ";
    9.     cin>>a;
    10.     int s=0;
    11.     for(int i=1;i<=a;i+=2)
    12.         s+=i;
    13.     cout<<s<<endl;
    14.     int p=1;
    15.     for(int i=2;i<=a;i+=2)
    16.         p*=i;
    17.     cout<<p<<endl;
    18.     return 0;
    19. }
    Последний раз редактировалось Romeo; 17.01.2008 в 13:49. Причина: Декорация кода

  7. #6
    Moderator Куратор
    system architect
    Romeo is on a distinguished road Аватар для Romeo
    Регистрация
    02.03.2004
    Адрес
    Крым, Севастополь
    Возраст
    37
    Сообщений
    3,091
    Вес репутации
    21

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

    Код :
    1. #include <iostream.h>
    2. #include <conio.h>
    3. #include <stdio.h>
    4.  
    5. int main()
    6. {
    7.    int S, P;
    8.    int a, ai, i;
    9.  
    10.    S = 0;
    11.    P = 1;
    12.  
    13.    cout<<"Vvedite kolichestvo chisel: "<< endl;
    14.    cin << a;
    15.  
    16.    for (i = 0; i < a; ++i)
    17.    {
    18.       cout << "Vvedite a[" << i + 1 << "]: ";
    19.       cin >> ai;
    20.  
    21.       if (i % 2)
    22.       {
    23.          P *= ai;
    24.       }
    25.       else
    26.       {
    27.          S += ai;
    28.       }
    29.    }
    30.  
    31.    cout << "Summa: " << S << end;
    32.    cout << "Proizvedenie: " << P <<end;
    33.    getch();
    34.  
    35.    return 0;
    36. }
    Последний раз редактировалось Romeo; 17.01.2008 в 13:52. Причина: Вывод i заменён на вывод i + 1.
    Entites should not be multiplied beyond necessity @ William Occam
    ---
    Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
    ---
    Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.

  8. #7
    coder Бабочка is on a distinguished road
    Регистрация
    09.01.2008
    Возраст
    37
    Сообщений
    23
    Вес репутации
    11

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

    Спасибо большое. но вот мой вариант решения:
    Код :
    1. # include <iostream.h>
    2. # include <conio.h>
    3. # include <stdio.h>
    4. int main()
    5. {
    6. int S,P;
    7. int N,i,j=0,a;
    8. S=0;
    9. P=1;
    10. cout<<"Vvedite chisla N"<<endl;
    11. cin>>N;
    12. for (i=1;i<=N;i+=1)
    13.  {
    14. cout<<"a="<<endl;
    15. cin>>a;
    16. if (j==0)
    17.   {
    18.   j++;
    19.   S+=a;  
    20.  }
    21. else
    22.    {
    23.    j--;
    24.    P*=a;
    25.  
    26.     };
    27.   };
    28.   cout<<S;
    29.   cout<<P;
    30. getch();
    31. return 0;
    32. }
    Последний раз редактировалось Romeo; 18.01.2008 в 14:30. Причина: Декорация кода

  9. #8
    senior developer Albor is on a distinguished road
    Регистрация
    06.09.2004
    Адрес
    Днепропетровск
    Сообщений
    482
    Вес репутации
    15

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

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

  10. #9
    Moderator Куратор
    system architect
    Romeo is on a distinguished road Аватар для Romeo
    Регистрация
    02.03.2004
    Адрес
    Крым, Севастополь
    Возраст
    37
    Сообщений
    3,091
    Вес репутации
    21

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

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

    В случае, если ты сделаешь j типа bool, то многие вещи упростяться. Вот исправленный фрагмент кода:
    Код :
    1. # include <iostream.h>
    2. # include <conio.h>
    3. # include <stdio.h>
    4.  
    5. int main()
    6. {
    7.    int S,P;
    8.    int N,i,a;
    9.    S=0;
    10.    P=1;
    11.  
    12.    bool j = false;
    13.  
    14.    cout<<"Vvedite chisla N"<<endl;
    15.    cin>>N;
    16.    for (i=1;i<=N;i+=1)
    17.    {
    18.       cout<<"a="<<endl;
    19.       cin>>a;
    20.       if (j)
    21.       {
    22.           S+=a;  
    23.       }
    24.       else
    25.       {
    26.           P*=a;
    27.       }
    28.  
    29.      j = !j;
    30.    }
    31.  
    32.    cout<<S;
    33.    cout<<P;
    34.    getch();
    35.    return 0;
    36. }
    Последний раз редактировалось Romeo; 18.01.2008 в 16:37.
    Entites should not be multiplied beyond necessity @ William Occam
    ---
    Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
    ---
    Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.

  11. #10
    coder Бабочка is on a distinguished road
    Регистрация
    09.01.2008
    Возраст
    37
    Сообщений
    23
    Вес репутации
    11

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

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

+ Ответить в теме
Страница 1 из 2
1 2 ПоследняяПоследняя

Похожие темы

  1. Массивы в Delphi
    Парни, завал прост, не сдам послезавтра - обреют и пошлют окопы рыть. Помогите плиз. 1. Дан массив Z состоящий из M целых чисел...
    от 4saken в разделе задачи на Паскале и Delphi
  2. Массивы В С++
    Помогите пажлуста решить задачу Текст задачи таков Дана целочисленная прямоугольная матрица надо опредилить № строки в которой находится самая...
    от Razum в разделе Решите мне задачку
  3. про Многомерные массивы..
    Интересует меня такой вопросик я задаю массив 2х мерный к примеру $d $d $d $d $d Так вот будут ли обрабатываться при обращение к данным масива...
    от Duncon в разделе Perl, PHP, ASP ...
  4. Массивы что то нехватает
    :( ваще как я понел это задание то что если ввести массив из 10 элементов например, задать число Z:=1, и M1:=-5 а M1:=1 то должно M1:=-5...
    от topor в разделе Delphi и Pascal
  5. Массивы
    1.Дана матрица А(n,m)переставляя её строки и столбцы добейтесь того, что бы найбольший элемент оказался в левом верхнем углу. 2. В заданном массиве...
    от -000- в разделе Решите мне задачку

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения