Задача: Одномерные массивы, работа с четными и ничет. элементами

Тема в разделе "C/C++/C#", создана пользователем Sheriff92, 5 дек 2010.

Статус темы:
Закрыта.
  1. Sheriff92

    Sheriff92 Гость

    Задание:
    С помощью датчика случайных чисел сформировать два массива X и Y
    размерностью 100 и 200 чисел в диапазоне от 0 до 1 и от 0 до 100 соответственно. По
    массиву Х - найти сумму всех элементов с четными номерами, по массиву Y – сумму всех
    элементов с нечетными номерами.
    Ну и сумма у меня пока не доделанная. Если можете, то и её посоветуйте как делать?

    Добавлено: #include"stdafx.h"
    #include<conio.h>
    #include<math.h>
    #include<stdlib.h>


    void main()
    {
    constint N1=1, N2=100;
    int x[N1], y[N2], m=100, p=200, i, j, sNech, sCh;
    scanf ("%d%d",&m,&p);
    random();
    for (i=0;i<m;i++)
    x=random();
    printf ("sformirovanniy massiv x:\n");
    for (i=0;i<m;i++)
    printf ("%d",x);
    sNech=0;
    for (i=0;i<m;i++)
    sNech=sNech+x;
    printf ("\nsumma elementov massiva x=%d",sNech);

    for (j=0;j<p;j++)
    y[j]=random();
    printf ("sformirovanniy massiv y:\n");
    for (j=0;j<p;j++)
    printf ("%d",y[j]);
    sCh=0;
    for (j=0;j<p;j++)
    sCh=sCh+y[j];
    printf ("\nsumma elementov massiva y=%d",sCh);
    getch();
    }
     
  2. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Код (C++):
    #include <iostream>
    #include <conio.h>
    #include <time.h>

    using namespace std;
    void main()
    {

    const int N1=1, N2=100; //Что то в N1 - очень мало элементов
    int x[N1], y[N2], m=100, p=200, i, j, sNech, sCh;
    scanf ("%d%d",&m,&p);
    //random(); // чет я такого не знаю наверное тут randomize();
    //но у меня и этого нету так что так инициализирую
    srand(time(NULL));
    for (i=0;i<m;i++)
    //x[i]=random(); //незнаю опять же такой функции
    x[i] = rand();
    printf ("sformirovanniy massiv x:\n");
    for (i=0;i<m;i++)
    printf ("%d ",x[i]);
    sNech=0;
    for (i=0;i<m;i++)
    sNech=sNech+x[i];
    printf ("\nsumma elementov massiva x=%d",sNech);

    for (j=0;j<p;j++)
    //y[j]=random();
    y[j] = rand();
    printf ("sformirovanniy massiv y:\n");
    for (j=0;j<p;j++)
    printf ("%d ",y[j]);
    sCh=0;
    for (j=0;j<p;j++)
    sCh=sCh+y[j];
    printf ("\nsumma elementov massiva y=%d",sCh);
    getch();
    }
     

    Вложения:

    • n1.jpg
      n1.jpg
      Размер файла:
      39,6 КБ
      Просмотров:
      31
  3. Sheriff92

    Sheriff92 Гость

    так N1 - это разве не диапазон чисел из которых будет составлен массив рандомом? я по одной книжке делал, там так сказано. Например: если надо чтоб массив был заполнен рандомом из чисел от 1 до 15, то по книге N1=15 X[15]

    А про функции random скорей всего да, это у меня ошибки были!

    а как задать сумму элементов массива с нечётными или чётными номерами?
     
  4. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Нет :))))
    Плюнь автору книги в лицо : ;-)))

    Нужен диапозон используй "%" - взятие остатка
    int n = rand()%15 (это значит что n - будет от 0 до 14)
    int n = rand()%15 + 1 (это значит что n - будет от 1 до 15)
     
  5. Sheriff92

    Sheriff92 Гость

    ха, хорошо:discard:)) спасибо!

    а как задать сумму элементов массива с нечётными или чётными номерами?

    может, например если для суммы элементов с чётными номерами:

    for (i=0;i<=m;i++)
    if (i=....... )
    sCh=sCh+;

    ...блин, даже незнаю что и предположить! уже мозг вскипел.
     
  6. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Sheriff92 : Шериф ;-) Все куда проще чем ты уже себе надумал :)
    Вот смотри :
     
  7. Sheriff92

    Sheriff92 Гость

    #include"stdafx.h"
    #include<conio.h>
    #include<math.h>
    #include<stdlib.h>

    int t_main()
    {
    int x, y[j], m=100, p=200, i, j, sNech, sCh;
    scanf ("%d%d",&m,&p);
    srand(time(NULL));
    for (i=0;i<m;i++)
    x=rand();
    printf ("sformirovanniy massiv x:\n");
    for (i=0;i<m;i++)
    printf ("%d",x);
    sNech=0;
    for (i=0;i<m;i++)
    if (i%2==0)
    {
    sNech=sNech+x;
    }
    printf ("\nsumma elementov massiva x=%d",sNech);
    for (j=0;j<p;j++)
    y[j]=rand();
    printf ("sformirovanniy massiv y:\n");
    for (j=0;j<p;j++)
    printf ("%d",y[j]);
    sCh=0;
    for (j=0;j<p;j++)
    if (i%2!=0)
    {
    sCh=sCh+y[j];
    }
    printf ("\nsumma elementov massiva y=%d",sCh);
    _getch();
    }



    я вот попробовал по всем собранным материалам переделать программу, но что-то всё-вравно не работает?
    выдает три ошибки:
    error C2065: 'i' : undeclared identifier
    error C2065: 'j' : undeclared identifier
    error C3861: 'time': identifier not found
     
  8. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Код (C++):
    //#include"stdafx.h"
    #include<conio.h>
    #include<math.h>
    #include<stdlib.h>
    //Сюда добавь
    #include <time.h>
    #include <stdio.h>

    int t_main()
    {
    //int x[i], y[j]; // Вот тут, чувствуешь сам, что про i и j ничего выше нету... Так дело совсем не пойдет
    //заменим
    const int cX = 100;
    const int cY = 100;
    //И уже только тогда
    int x[cX], y[cY];
    int m=100,p=200, i, j, sNech, sCh;
    scanf ("%d%d",&m,&p);
    srand(time(NULL));
    for (i=0;i<m;i++)
    x[i]=rand();
    printf ("sformirovanniy massiv x:\n");
    for (i=0;i<m;i++)
    printf ("%d",x[i]);
    sNech=0;
    for (i=0;i<m;i++)
    if (i%2==0)
    {
    sNech=sNech+x[i];
    }
    printf ("\nsumma elementov massiva x=%d",sNech);
    for (j=0;j<p;j++)
    y[j]=rand();
    printf ("sformirovanniy massiv y:\n");
    for (j=0;j<p;j++)
    printf ("%d",y[j]);
    sCh=0;
    for (j=0;j<p;j++)
    if (i%2!=0)
    {
    sCh=sCh+y[j];
    }
    printf ("\nsumma elementov massiva y=%d",sCh);
    _getch();
    return 0; //Ты описал t_main как:
    // int t_main()
    //Поэтому все же вернем значение типо int
    }
     
  9. Sheriff92

    Sheriff92 Гость

    а что такое
    const int cX = 100;
    const int cY = 100;
    число элементов в массивах X и Y ?
    я же число элементов через m=100, p=200 задал?

    а int в скобки у int t_main добавить: int t_main(int)?
     
  10. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Посмотри на текст который я закомментировал в твоем прошлом посте, а именно:

    Я тут не вижу ни m, ни n
    Тут без комментариев... напишите
    void t_main(void) - и не мучайтесь
     
  11. Sheriff92

    Sheriff92 Гость

    а, тоесть получается без всяких m и p можно?
    ......
    const int cX=100, cY=200; //где 100 и 200 число элементов массива
    int X[cX], Y[cY], i, j, sNech, sCh;

    и уже в for будет:
    ........
    for (i=0;i<=cX;i++)
    x=rand();
    ......ну и так далее
     
  12. Sheriff92

    Sheriff92 Гость

    Код (C++):
    #include"stdafx.h"
    #include<conio.h>
    #include<math.h>
    #include<stdlib.h>

    void t_main(void)
    {
    const int cX=100, cY=200;
    int x[cX], y[cY], i, j, sNech, sCh;
    for (i=0;i<cX;i++)
    x[i]=rand();
    printf ("sformirovanniy massiv x:\n");
    for (i=0;i<cX;i++)
    printf ("%d",x[i]);
    sNech=0;
    for (i=0;i<cX;i++)
    if (i%2==0)
    {
    sNech=sNech+x[i];
    }
    printf ("\nsumma elementov massiva x=%d",sNech);
    for (j=0;j<cY;j++)
    y[j]=rand();
    printf ("sformirovanniy massiv y:\n");
    for (j=0;j<cY;j++)
    printf ("%d",y[j]);
    sCh=0;
    for (j=0;j<cY;j++)
    if (i%2!=0)
    {
    sCh=sCh+y[j];
    }
    printf ("\nsumma elementov massiva y=%d",sCh);
    _getch();
    }
    Смотрите, программу переделал, а всё-равно почему-то какая-то ошибка одна вылазит:
    Project : error PRJ0003 : Error spawning 'rc.exe'.
    Что это за ошибка?
     
  13. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Все прочитать не успел, но:
    Код (C++):
    for (i=0;i<=m;i++)
    //Это значит что i от 0 до m-1
    это НЕ значит что до m-1 !!! Это значит до m ВКЛЮЧИТЕЛЬНО. Может это Вам уже и не нужно, но тем не менее...
     
Загрузка...
Похожие Темы - Задача Одномерные массивы
  1. Lizzz
    Ответов:
    1
    Просмотров:
    1.246
  2. Янчик
    Ответов:
    0
    Просмотров:
    489
  3. TrishaRay
    Ответов:
    1
    Просмотров:
    783
  4. elzim
    Ответов:
    0
    Просмотров:
    932
  5. ShaoKahn
    Ответов:
    0
    Просмотров:
    1.128
Статус темы:
Закрыта.

Поделиться этой страницей