void sort(int [],int);
Это, как я обычно использую один одномерный массив (то есть: int []
) внутри оператора объявления функции для таких программ, как сортировка и она отлично работает без каких-либо проблемКак использовать двумерный массив в заявлении объявления функции?
Но для моей матрицы программы сложения, когда я использую двухмерный массив (то есть: int [][]
) внутри оператора объявления функции с аналогичным форматом void mat(int [][],int [][],int ,int);
Iam получает некоторые сообщения об ошибках типа: -
1. Многомерный массив должен иметь границы для всех измерений, кроме первого.
2.неверное преобразование из 'int (*) [10]' в 'int' [-fpermissive].
Так что мой вопрос заключается в том, как написать двумерный массив внутри оператора объявления функции.
Ниже я прилагаю мою полную матрицу программу сложения, используя функции: -
#include<stdio.h>
void mat(int [][],int [][],int ,int);
int main()
{
int a[10][10],b[10][10],m,n,i,j;
printf("Enter the rows and coloumns: ");
scanf("%d %d",&m,&n);
printf("\nEnter the elements of 1st Matrix:");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
printf("\nEnter the elements of the 2nd Matrix:");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&b[i][j]);
mat(a,b,m,n);
}
void mat(int a[10][10],int b[10][10],int m,int n)
{
int i,j,c[10][10];
for(i=0;i<m;i++)
for(j=0;j<n;j++)
c[i][j]=a[i][j]+b[i][j];
printf("\nThe addition of the 2 Matrix is :");
for(i=0;i<m;i++)
{
printf("\n");
for(j=0;j<n;j++)
printf("%d",c[i][j]);
}
}
Прототип функции должен быть копией/вставкой определения функции, с точкой с запятой, прикрепленной к концу. – user3386109
Никакие прототипы функций не будут иметь только типы данных, тогда как определение функции будет иметь и тип данных с именем переменной – Sparkzz
. В C. нет двухмерных (или любых более высоких) размерных массивов. Вместо этого вы можете иметь массивы массивов, которые не то же самое. – SergeyA