Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: 6305
Последний выпуск: 19.06.2015

Задачи на массивы(с++)

81K
30 марта 2012 года
iron94
1 / / 30.03.2012
Для массива b(20,20) определить минимальное значение элемента и указать его номер строки и столбца
67K
30 марта 2012 года
NoXCode
64 / / 11.03.2012
Код:
int v[20][20];
    for (int i = 0; i < 20; i++)
        for (int k = 0; k < 20; k++)
            v[i][k] = rand() % 400 + 20;

    int iMin = 0, jMin = 0;
    for (int z1 = 0; z1 < 20; z1++)
        for (int z2 = 0; z2 < 20; z2++)
            if (v[z1][z2] < v[iMin][jMin])
             { iMin = z1; jMin = z2; }

    for (int t1 = 0; t1 < 20; t1++)
    {
        for (int t2 = 0; t2 < 20; t2++)
            printf("%d ",v[t1][t2]);
        printf("\n");
    }

    printf("v[%d][%d] = %d\n",iMin,jMin,v[iMin][jMin]);
78K
30 марта 2012 года
drfaust
20 / / 19.03.2012
ядро проги:
Код:
int stolb=0;
int kolonna=0;
int merka=MAXINT;
for(int i=0;i<20;i++)
  for(int j=0;j<20;j++)
    if (merka<b[i][j])
      {stolb=i;
       kolonna=j;
       merka=b[i][j];  
        }
cout<"Столбец: "<<i<<" Строка: "<<j<<endl;
67K
31 марта 2012 года
NoXCode
64 / / 11.03.2012
drfaust, ошибка в коде вместо int merka = MAXINT => int merka = b[0][0]
78K
31 марта 2012 года
drfaust
20 / / 19.03.2012
Ну я не особо заморачивался. Писал прямо в форуме...
82K
04 апреля 2012 года
NerZuJI
1 / / 04.04.2012
дан одномерны массив размерностью n(Любое) заменить все отрецательные элементы нулями если таких нет вывести сообщение.
и вторая задача дан двумерный массив размерностью m n посчитать сумму элементов в каждой строке
70K
25 июля 2012 года
ProkletyiPirat
76 / / 25.07.2012
Цитата:
дан одномерны массив размерностью n(Любое) заменить все отрецательные элементы нулями если таких нет вывести сообщение.
и вторая задача дан двумерный массив размерностью m n посчитать сумму элементов в каждой строке



NerZuJI учись лучше если и это не можешь сделать то программистом тебе не стать :(

1-я задача:

Код:
#include <iostream>
#include <locale>//библиотека языков
using namespace std;

int  main ()
{
    setlocale(LC_ALL,"rus")//подрубаем русский анси

    int a[10];
    int i,x=0,n=10;

    /*тут добавишь ввод данных в массив, если надо*/

    for(i=0  ;  i<n  ;  i++)
        if(a[i] < 0) {x++; a[i]=0;}//в переменной х хранится количество отрицательных чисел
   
    if(!x) cout<<"Отрицательных значений нет\n\n";//if(!x) это тоже самое что и if(x==0)

    return 0;
}
2-я задача:

Код:
#include <iostream>
#include <locale>//библиотека языков
using namespace std;

int  main ()
{
    setlocale(LC_ALL,"rus")//подрубаем русский анси

    int a[5][10];
    int i,j,x,m=5,n=10;

    for(i=0  ;  i<m  ;  i++){//этот цикл перебирает строки
        x=0;//обнуляем x дабы считать только эту строку

        for(j=0  ;  j<n  ;  j++)//этот цикл перебирает ячейки в строке
            x+=a[i][j];//выражение x+=a[i][j]; тоже самое что и x=x+a[i][j];

        cout<<"строка "  <<i  <<"сумма строки = "  <<x  <<"\n";//выводим строку
    }

    return 0;
}
код не запускал но ошибок вроде нет :)
459
25 октября 2012 года
cronya
420 / / 03.01.2009
Цитата: ProkletyiPirat
2-я задача:


Я бы так сделал :)

Код:
#include<iostream>
#include<ctime>
using std::cout;
using std::endl;

int  RangedRandDemo( int range_min, int range_max );
void PrintArray(int **Arr, int row, int column);
void SummaInRow(int **Arr, int row, int column);

int main()
{
    srand((unsigned int )time(NULL));
    int row = RangedRandDemo(2,7);
    int column = RangedRandDemo(2,7);
    int **Arr = new int* [row];
    for(int idx=0;idx<row;idx++)
    {
        Arr[idx] = new int[column];
    }
    for(int idx=0;idx<row;idx++)
        for(int jdx=0;jdx<column;jdx++)
            Arr[idx][jdx] = RangedRandDemo(0,20);
    PrintArray(Arr,row,column);
    SummaInRow(Arr,row,column);
    for(int idx=0;idx<row;idx++)
        delete []Arr[idx];
    delete []Arr;
    cout<<endl;
    system("pause");
    return 0;
}

int  RangedRandDemo( int range_min, int range_max)
{
    int u = (double)rand() / (RAND_MAX + 1) * (range_max - range_min) + range_min;      
    return u;
}

void PrintArray(int **Arr, int row, int column)
{
    cout<<"Row = "<<row<<"\t"<<"Column = "<<column<<endl<<endl;
    cout<<"Array:"<<endl;
    for(int idx=0;idx<row;idx++)
    {
        for(int jdx=0;jdx<column;jdx++)
        {
            cout<<Arr[idx][jdx]<<"\t";
        }
        cout<<endl;
    }
}

void SummaInRow(int **Arr, int row, int column)
{
    cout<<endl<<"Summa In Row:"<<endl;
    for(int idx=0;idx<row;idx++)
    {
        int summa=0;
        for(int jdx=0;jdx<column;jdx++)
        {
            summa+=Arr[idx][jdx];
        }
        cout<<"Summa of Row #"<<idx+1<<" = "<<summa<<endl;
    }
}
А то ручками заполнение не красиво да и долго :)
70K
25 октября 2012 года
ProkletyiPirat
76 / / 25.07.2012
Цитата: cronya
Цитата: ProkletyiPirat
2-я задача:


Я бы так сделал :)
//код...
А то ручками заполнение не красиво да и долго :)



1)во второй проге у меня ввода нет только в перво и то "если надо"
2)я бы канешно тоже сделал рандомное заполнение.
3)самое важное: cronya ты подумай кому ты свой пример пишешь (iron94 или начинающим программистам)
ты даже не потрудился задокументировать код, знающий то поймёт и разберёт всё вплоть до двойных указателей, но читать то это будут те кто ещё и неслыхивал что такое указатель\ссылка и наверняка ещё не делал функций и не знает о прототипах и аргументах
что они узнают из твоего более правильного но более сложного кода? (я думаю в лучшем случае спишут ничего не поняв...)

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог