Вопрос по С++

Пух

كنت بلهاء
Модератор
Как правильно заполнить двумерный массив с помощью функции?

С одномерным массивом вроде всё ясно(кстати, обязательно возвращать указатель на массив?)
Код:
#include <stdio.h>
#include <stdlib.h>
#define N 20

float *input(float *a){
  float *arr=a;
   for (;arr<a+N;arr++)
     *arr=random(10)-5;
  return a;
}

void main(){
 float p[N];
 randomize();
 input(p)
}
а с двумерным не понятно =)

Код:
#include<stdio.h>
#include<stdlib.h>
#define n 2


void input(int arr[][]){
 int i=0, j=0;
  for (;i<n;i++){
     for (;j<n;j++){
       arr[i][j]=random(10)-5;
       printf("%d",arr[i][j]);
     }
  }
}

void main(){
  int a[n][n];
  randomize();
  input(a[n][n]);
}
ошибка в строке "void input(int arr[][])" (size of type is unknown or zero)
 
Код:
#include<stdio.h>
#include<stdlib.h>
#define n 2


void input(int arr[n][n]){
 int i=0, j=0;
  for (;i<n;i++){
     for (;j<n;j++){
       arr[i][j]=random(10)-5;
       printf("%d",arr[i][j]);
     }
  }
}

void main(){
  int a[n][n];
  randomize();
  input(a);
}
так попробуй
 

Пух

كنت بلهاء
Модератор
я и так пробовал...
input(a[n][n]) - cannot convert 'int' to 'int[2] *'
 

Пух

كنت بلهاء
Модератор
тю, сорри)) я не заметил))

Код:
float *input(float *a){
  float *arr=a;
   for (;arr<a+N;arr++)
     *arr=random(10)-5;
  return a;
}
обязательно возвращать указатель на массив?!
 
Останнє редагування:

~Simorg~

trust nobody
народ выложите если у когото есть книги, справочники, видеокурсы по С++ по которым можно было нормально освоить этот язык ибо преподавание в универе неустраивает.
 
Зверху