Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2011, 00:58   #1
SoTwisted
Пользователь
 
Регистрация: 11.01.2011
Сообщений: 12
По умолчанию Задачи по матрицам.

1.При запуске программы в Си выскакивают какие-то дикие символы. Условие задачи: Вычислить S=(ki+kj)/(mi+mj), где ki и kj – индексы строки и столбца минимального положительного элемента, а mi и mj– индексы строки и столбца первого положительного элемента матрицы Y(5х7).

Код:
#include <stdio.h>
#define N1 5
#define N2 7
int main (void)
{
int M[N1][N2],i,j,ki,kj,mi,mj,min;
float S;
for (i=0;i<N1;i++)
for (j=0;j<N2;j++)
scanf ("%d",M[i][j]);
min=M[0][0];
for (i=0;i<N1;i++)
for (j=0;j<N2;j++)
if (M[i][j]>0&&M[i][j]<min)
{
min=M[i][j];
ki=i;
kj=j;
}
for (i=0;i<N1;i++)
for (j=0;j<N2;j++)
if (M[i][j]>0)
{
mi=i;
mj=j;
break;
}
S=(ki+kj)/(mi+mj);
printf ("S=%f",S);
return 0;
}
2.Поменять местами минимальные элементы массива А(57) и матрицы В(7х5).
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
void Input (int*,int);
void Output (int*,int,int);
int* Minimal (int*,int);
void Change (int*,int*);
int main (void)
{ int A[57],B[5][7];
clrscr ();
srand((unsigned)time(NULL));
Input(&A[0],57);
Input(&B[0][0],35);
Output(&A[0],1,57);
Output(&B[0][0],5,7);
Change(Minimal(&A[0],57),Minimal(&B[0][0],35));
Output (&A[0],1,57);
Output(&B[0][0],5,7);
getch ();
return 0;
}
void Input(int* x,int n)
{ int i;
for (i=0;i<n;i++)
*(x+i)=-50+rand()%100;
}
void Output(int* x,int n, int m)
{int i,j;
printf ("Array:\n");
for (i=0;i<n;i++)
for (j=0;j<m;j++)
printf ("%5d",*(x+i*m+j));
printf ("\n");
}
int* Minimal(int* x,int n)
{ int i,*min;
for (i=1,min=x;i<n;i++)
if(*min>*(x+i))
min=x+i;
return min;
}
void Change(int* x,int* y)
{ int min=*x;
*x=*y;
*y=min;
}
Помогите исправить ошибки.

Последний раз редактировалось artemavd; 11.01.2011 в 03:57.
SoTwisted вне форума Ответить с цитированием
Старый 11.01.2011, 13:20   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Код:
#include <stdio.h>
#include <conio.h>
#define N1 5
#define N2 7
int main (void)
{
int M[N1][N2],i,j,ki,kj,mi,mj,min;
float S;
for (i=0;i<N1;i++)
for (j=0;j<N2;j++)
scanf ("%d",&M[i][j]);
min=M[0][0];
ki=0;
kj=0;
for (i=0;i<N1;i++)
for (j=0;j<N2;j++)
if ((M[i][j]>0)&&(M[i][j]<min))
{
min=M[i][j];
ki=i;
kj=j;
}
mi=0;
mj=0;
for (i=0;i<N1;i++)
for (j=0;j<N2;j++)
if (M[i][j]>0)
{
mi=i;
mj=j;
break;
}
if((mi+mj)!=0)
{
S=(ki+kj)/(mi+mj);
printf ("S=%f",S);
}
else
printf ("mi+mj==0");
getch();
return 0;
}
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ программа по матрицам radio Помощь студентам 7 05.02.2010 08:25
Pascal. 2 задачи по матрицам. CheeL Помощь студентам 1 22.12.2009 20:24
Задание по матрицам Иван 883 Паскаль, Turbo Pascal, PascalABC.NET 2 27.12.2008 01:43
Вопрос по матрицам Jigar Помощь студентам 9 17.07.2008 14:06
Задача по матрицам Alfons Паскаль, Turbo Pascal, PascalABC.NET 3 05.03.2008 14:09