#include <stdio.h>;
#include <conio.h>;
#include <math.h>;
int n;
typedef long int a[100][100];
a mat;
long int max;
int vvod(a mv,int n)
{
int i,j;
randomize();
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
mv[j]=random(100)-50;
}
int raschet(a mv,int n)
{
int i,j;
long int mix;
mix=mv[1][1];
for(i=1;i>=j;i++)
for(j=1;j<=i;j++)
if(mv[j]>=mix) mix=m[j];
return mix;
}
int vivod(a mv,int n)
{
int i,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%i ",mv[j]);
printf("\n");
}
}
void main()
{
clrscr();
puts("Vvedite n");
scanf("%i\n",&n);
vvod(mat,n);
puts("Dana matrica:");
vivod(mat,n);
max=raschet(mat,n);
printf("Makcimalnii element=%i",max);
getch();
}
Наибольший из элементов матрицы (ниже главной диагонали) (Си)
Вот решение:
Код:
Подскажите пожалуйста в чем ошибка (к примеру при компиляции, показывает что ошибка в randomize(), но я не вижу в чем она), может я как то неправильно функции написал, т.к. я их недавно начал изучать.
FAQ раздела Студентам есть создание динамического двумерного массива. Mассив должен быть динамическим.
2.Подобные задача неоднократно решали.Поищи.
3.В твоем коде ф-ии int vvod(a mv,int n) и int vivod(a mv,int n) должны возращать значения.Посмотри в том же FAQ Студентам как руссифицироввать консоль.Что это за vvod-vivod ?;) Тогда уж давай функциям английские названия.
P.S. Создай для начала сам правильно двумерный динамический массив. Ты ж ничего не поймешь без этого.;)
1.В
2.Подобные задача неоднократно решали.Поищи.
3.В твоем коде ф-ии int vvod(a mv,int n) и int vivod(a mv,int n) должны возращать значения.Посмотри в том же FAQ Студентам как руссифицироввать консоль.Что это за vvod-vivod ?;) Тогда уж давай функциям английские названия.
P.S. Создай для начала сам правильно двумерный динамический массив. Ты ж ничего не поймешь без этого.;)
Цитата: Draconit
Подскажите пожалуйста в чем ошибка (к примеру при компиляции, показывает что ошибка в randomize(), но я не вижу в чем она), может я как то неправильно функции написал, т.к. я их недавно начал изучать.
Если ты говоришь об ошибке, то хоть приведи текст сообщения компилятора;)
Код:
#include <stdio.h>;
#include <conio.h>;
#include <stdlib.h>;
int n,max,i,j;
int a[100][100];
void vvod(int a[100][100])
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
a[j]=random(100)-50;
}
// puts("");
}
}
void raschet(int a[100][100])
{
max=a[1][1];
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
if( a[j] > max) max=a[j];
}
void vivod(int a[100][100])
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%i ",a[j]);
printf("\n");
}
}
void main()
{
clrscr();
puts("Введите n");
scanf("%i\n",&n);
randomize();
vvod(a);
puts("Дана матрица:");
vivod(a);
raschet(a);
printf("Максимальный элемент=%i",max);
getch();
}
#include <conio.h>;
#include <stdlib.h>;
int n,max,i,j;
int a[100][100];
void vvod(int a[100][100])
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
a[j]=random(100)-50;
}
// puts("");
}
}
void raschet(int a[100][100])
{
max=a[1][1];
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
if( a[j] > max) max=a[j];
}
void vivod(int a[100][100])
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%i ",a[j]);
printf("\n");
}
}
void main()
{
clrscr();
puts("Введите n");
scanf("%i\n",&n);
randomize();
vvod(a);
puts("Дана матрица:");
vivod(a);
raschet(a);
printf("Максимальный элемент=%i",max);
getch();
}
Только когда я запускаю задачу и ввожу n, программа ждет ввода ещё одного числа - любого, и потом уже она выводит квадратную матрицу размером n (вне зависимости от того какое я ввел второе число) и находит максимальное число. И я не могу найти, почему ей нужно ввести ещё одно число, помогите найти.
Код:
void main()
{
clrscr();
puts("Введите n");
[COLOR=red]scanf("%i",&n);[/COLOR]
...
{
clrscr();
puts("Введите n");
[COLOR=red]scanf("%i",&n);[/COLOR]
...
to WidowMaker точно :) спасибо