Задача 2. Даны две матрицы: А = {a i j }5x6 и В = {b i j}4x7Даны две матрицы: А = {a i j }5x6 и В = {b i j }4x7. Вычислить разность: С = КА - KB, где КА и KB - количество положительных элементов в матрицах А и В соответственно. #include " stdafx.h" int CP(float D[7][7], int m, int n) /* функция для подсчета количества положительных элементов в матрице */ { int i, j, KD; KD=0; for (i=0; i< m; i++) for (j=0; j< n; j++) if (D[i][j]> 0) KD ++; Return KD; } int main() { float A[7][7], B[7][7]; int i, j, C; printf(" Введите матрицу А\n"); for (i=0; i< 5; i++) for (j=0; j< 6; j++) scanf(" %f", & A[i][j]); printf(" Введите матрицу B\n"); for (i=0; i< 4; i++) for (j=0; j< 7; j++) scanf(" %f", & B[i][j]);
C= CP(A, 5, 6) - CP(B, 4, 7); printf(" C=%d\n", C); return 0; }
Задача 3 На плоскости декартовыми координатами заданы 10 точек: {x1, y1}, {x2, y2},..., {х10, у10}. Вывести полярные координаты точки, имеющей наибольший полярный радиус. Вычисление полярных координат одной точки оформить подпрограммой. Расчетные формулы для вычисления полярных координат следующие: , где а и b - координаты точки. Решение: #include " stdafx.h" #include< math.h> void PK(float a, float b, float *ro, float *fi) /* функция для расчета полярных координат точки */ { *ro = sqrt(a*a + b*b); *fi = atan(b/a); } int main() { float X[10], Y[10], R[10], F[10]; int i, n; float max; printf(" Введите абсциссы 10 точек\n"); for (i=0; i< 10; i++) scanf(" %f", & X[i]); printf(" Введите ординаты 10 точек\n"); for (i=0; i< 10; i++) scanf(" %f", & Y[i]); max = 0; for (i=0; i< 10; i++) { PK(X[i], Y[i], & R[i], & F[i]); if (R[i]> max) // поиск максимального радиуса { max =R[i]; n=i; } } printf(" romax=%f fimax=%f\n", R[n], F[n]); return 0; }
|