#include <iostream>
using namespace std;
const int N = 2;
const int M = 3;
double FindMin (double** array)
{
double min = array[0][0];
for(int i = 0; i < N; i++)
{
for(int j =0; j< M; j++)
{
if(array[j] < min)
{
min = array[j];
}
}
}
return min;
}
int main(int argc, char argv[])
{
double** array;
double min;
array = (double**)malloc(N*sizeof(double*));
for(int i = 0; i < N; i++)
array = (double*)malloc(M*sizeof(double));
for(int i = 0; i < N; i++)
{
for(int j = 0; j < M; j++)
{
cout << "\narray[" << i << "][" << j << "] -> ";
cin >> array[j];
}
}
min = FindMin(array);
for(int i = 0; i < N; i++)
{
for(int j = 0; j < M; j++)
{
array[j] = array[j] / min;
}
}
for(int i = 0; i < N; i++)
{
for(int j = 0; j < M; j++)
{
cout << "\narray[" << i << "][" << j << "] -> " << array[j];
}
}
return 0;
}
Как найти наименьший элемент в двумерном массиве
Написать программу которая находит наименьший элемент массива и на его значение разделить каждый элемент массива. Двумерный массив.
(должнa быть написанна на языке С++ в консольном приложение Borland C++ Builder)
Буду рад любой помощи! =)
Опять не успел :) Тока дописал код, а тут уже и без меня справились...
а по проще можно написать ?? =)
В смысле попроще?:confused:
Цитата:
В смысле попроще?:confused:
возможно не стоит пользоваться диномически созданным массивом.
прежде чем делить все элементы массива на найденный min, стоит проверить что он не ноль, имхо.
прежде чем делить все элементы массива на найденный min, стоит проверить что он не ноль, имхо.[/QUOTE]
Точно! Я об этом даже и не думал =)
Седня узнал у препода, что нельзя использовать указатели..., только при помощи циклов =\
Код:
/*******************************************************/
#include <iostream>
#include <conio.h>
/*******************************************************/
using namespace std;
/*******************************************************/
const int N = 3;
const int M = 4;
/*******************************************************/
int main()
{
double array[N][M];
double min;
for(int i = 0; i < N; i++)
{
for(int j = 0; j < M; j++)
{
cout << "\narray[" << i << "][" << j << "] -> ";
cin >> array[j];
}
}
min = array[0][0];
for(int i = 0; i< N; i++)
{
for(int j = 0; j < M; j++)
{
if(array[j] == 0) continue;
if(min > array[j]) min = array[j];
}
}
for(int i = 0; i < N; i++)
{
for(int j = 0; j < M; j++)
{
array[j] /= min;
}
}
for(int i = 0; i < N; i++)
{
for(int j = 0; j < M; j++)
{
cout << "\narray[" << i << "][" << j << "] -> " << array[j];
}
}
char cQuit;
while(cQuit != char(27))
{
cout << "\nPress ESC to exit...";
cQuit = getche();
}
return 0;
}
/*******************************************************/
#include <iostream>
#include <conio.h>
/*******************************************************/
using namespace std;
/*******************************************************/
const int N = 3;
const int M = 4;
/*******************************************************/
int main()
{
double array[N][M];
double min;
for(int i = 0; i < N; i++)
{
for(int j = 0; j < M; j++)
{
cout << "\narray[" << i << "][" << j << "] -> ";
cin >> array[j];
}
}
min = array[0][0];
for(int i = 0; i< N; i++)
{
for(int j = 0; j < M; j++)
{
if(array[j] == 0) continue;
if(min > array[j]) min = array[j];
}
}
for(int i = 0; i < N; i++)
{
for(int j = 0; j < M; j++)
{
array[j] /= min;
}
}
for(int i = 0; i < N; i++)
{
for(int j = 0; j < M; j++)
{
cout << "\narray[" << i << "][" << j << "] -> " << array[j];
}
}
char cQuit;
while(cQuit != char(27))
{
cout << "\nPress ESC to exit...";
cQuit = getche();
}
return 0;
}
/*******************************************************/
прежде чем делить все элементы массива на найденный min, стоит проверить что он не ноль, имхо.
[/QUOTE]
Спасибо, я это не учел, но теперь исправил
Седня узнал у препода, что нельзя использовать указатели..., только при помощи циклов =\[/QUOTE]
какая между ними связь?:)
ну минимальный можно найти и так и с помощью указателей =\
Написать программу которая находит наименьший элемент массива и на его значение разделить каждый элемент массива. Двумерный массив.
Это воод массива, но при выводе элементов t[j] выводит тока последнюю строку которую заполняю, а при записи t[j] выдает ошыбку. Где моя ошыбка? :confused:
{
float *t;
int i,j;
t=(float*)malloc(a*b*sizeof(float));
for(i=0;i<a;i++)
{for(j=0;j<b;j++)
printf("x[j]=",i,j);
scanf("%f",&t[j]);}}
Код:
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
float GetMinElement(float **t, int a, int b)
{
float MinValue = t[0][0];
for (int i = 0; i < a; i++)
for (int j = 0; j < b; j++)
if ( MinValue > t[j] )
MinValue = t[j];
return MinValue;
}
void main()
{
float **t;
int i, j, a, b;
printf("a = ");
scanf("%i", &a);
printf("b = ");
scanf("%i", &b);
printf("\n");
t = (float**)malloc( a * sizeof(float*) );
for (i = 0; i < a; i++)
t = (float*)malloc( b * sizeof(float) );
for (i = 0; i < a; i++)
for (j = 0; j < b; j++)
{
printf("x[%i][%i] = ", i, j);
scanf("%f", &t[j]);
}
printf("\nDim before calculate:\n");
for (i = 0; i < a; i++)
for (j = 0; j < b; j++)
printf("x[%i][%i] = %f\n", i, j, t[j]);
float MinElem = GetMinElement(t, a, b);
if ( MinElem != 0. )
for (i = 0; i < a; i++)
for (j = 0; j < b; j++)
t[j] /= MinElem;
printf("\nMin Element is: %f\n", MinElem);
printf("\nDim after calculate:\n");
for (i = 0; i < a; i++)
for (j = 0; j < b; j++)
printf("x[%i][%i] = %f\n", i, j, t[j]);
for (i = 0; i < a; i++)
free( t );
free(t);
getch();
}
#include <stdlib.h>
#include <stdio.h>
float GetMinElement(float **t, int a, int b)
{
float MinValue = t[0][0];
for (int i = 0; i < a; i++)
for (int j = 0; j < b; j++)
if ( MinValue > t[j] )
MinValue = t[j];
return MinValue;
}
void main()
{
float **t;
int i, j, a, b;
printf("a = ");
scanf("%i", &a);
printf("b = ");
scanf("%i", &b);
printf("\n");
t = (float**)malloc( a * sizeof(float*) );
for (i = 0; i < a; i++)
t = (float*)malloc( b * sizeof(float) );
for (i = 0; i < a; i++)
for (j = 0; j < b; j++)
{
printf("x[%i][%i] = ", i, j);
scanf("%f", &t[j]);
}
printf("\nDim before calculate:\n");
for (i = 0; i < a; i++)
for (j = 0; j < b; j++)
printf("x[%i][%i] = %f\n", i, j, t[j]);
float MinElem = GetMinElement(t, a, b);
if ( MinElem != 0. )
for (i = 0; i < a; i++)
for (j = 0; j < b; j++)
t[j] /= MinElem;
printf("\nMin Element is: %f\n", MinElem);
printf("\nDim after calculate:\n");
for (i = 0; i < a; i++)
for (j = 0; j < b; j++)
printf("x[%i][%i] = %f\n", i, j, t[j]);
for (i = 0; i < a; i++)
free( t );
free(t);
getch();
}
2 anty