Исправить код сложения матриц - C (СИ)
Формулировка задачи:
Здравствуйте. У меня проблема с написанием программы Мне нужно произвести сложение матриц общего вида и вывести на экран это всё !
А в программе выводится только конечный результат в строчку..подскажите как исправить = )
И еще один вопрос по поводу другой программы.
вот она :
сложение матриц
, посмотрите пожалуйста что не так ??
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
void main()
{
int i,j;
int a[10][10];
int b[10][10];
int c[10][10];
for (i=0;i<10;i++)
for (j=0;j<10;j++)
{
a[i][j]=random(100);
b[i][j]=random(100);
}
for (i=0;i<10;i++)
for (j=0;j<10;j++)
{
c[i][j] = a[i][j]+b[i][j];
}
printf("c[%d][%d]=%d,%d\n",i,j,c[i][j]);
getche();
}Выборка по условию
Из одномерного массива {ai} длиной n произвести выборку по условию (например, ai>0) его элементов в новый массив {bi}. Элементы массива {bi} плотно упаковать. Длина массива {bi} k<=n .
как это реализовать в программном виде на СИ ? (всмысле прогу написать)
Ну что никто не поможет ??
Решение задачи: «Исправить код сложения матриц»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand((unsigned)time(NULL));
int *a,*b;
int n,num_b=0,k=0,i;
printf("Enter n: -> ");
scanf("%d",&n);
a=(int*)malloc(n*sizeof(int));
printf("a: ");
for(i=0; i<n; i++)
{
a[i]=rand()%9-3;
printf("%d ",a[i]);
if(a[i] > 0)
{
num_b++;
}
}
b=(int*)malloc(num_b*sizeof(int));
printf("\nb: ");
for(i=0; i<n; i++)
{
if(a[i] > 0)
{
b[k]=a[i];
printf("%d ",b[k]);
k++;
}
}
free(a);
free(b);
getch();
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Задаем случайное начальное значение для генератора случайных чисел
- Объявляем переменные: a, b, n, num_b, k, i
- Запрашиваем у пользователя ввод размера матрицы n
- Выделяем память под массив a с помощью malloc
- Генерируем случайные числа для заполнения массива a и выводим их на экран
- Подсчитываем количество положительных чисел в массиве a и сохраняем это значение в переменную num_b
- Выделяем память под массив b с помощью malloc
- Заполняем массив b положительными числами из массива a и выводим их на экран
- Освобождаем память, выделенную под массивы a и b
- Ждем нажатия клавиши для завершения программы
- Возвращаем 0, чтобы указать, что программа успешно завершилась