Задачи на массивы(с++)
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]);
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;
и вторая задача дан двумерный массив размерностью m n посчитать сумму элементов в каждой строке
и вторая задача дан двумерный массив размерностью m n посчитать сумму элементов в каждой строке
NerZuJI учись лучше если и это не можешь сделать то программистом тебе не стать :(
1-я задача:
#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;
}
#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;
}
Я бы так сделал :)
#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;
}
}
Я бы так сделал :)
//код...
А то ручками заполнение не красиво да и долго :)
1)во второй проге у меня ввода нет только в перво и то "если надо"
2)я бы канешно тоже сделал рандомное заполнение.
3)самое важное: cronya ты подумай кому ты свой пример пишешь (iron94 или начинающим программистам)
ты даже не потрудился задокументировать код, знающий то поймёт и разберёт всё вплоть до двойных указателей, но читать то это будут те кто ещё и неслыхивал что такое указатель\ссылка и наверняка ещё не делал функций и не знает о прототипах и аргументах
что они узнают из твоего более правильного но более сложного кода? (я думаю в лучшем случае спишут ничего не поняв...)