3 / 2 / 1
Регистрация: 12.10.2017
Сообщений: 213
1

Передача переменных в функцию

05.07.2018, 09:12. Показов 915. Ответов 3
Метки нет (Все метки)

У меня в программе компилятор жалуется что не столько указателей я передаю как это исправить помогите плиз
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 
 
 
void input(int* array1, int** array2,int *k,int *l,int *c) 
{ 
  do
  {
    printf("Rows: "); 
    scanf("%d",k); 
    printf("Columns: "); 
    scanf("%d",l); 
  }while(*k>15 || *l>25); 
  printf("Number: "); 
  scanf("%d",c); 
  array2 = (int**) malloc(*k * sizeof(int*)); 
  array1 = (int*) malloc(*k * sizeof(int)); 
  srand(time(NULL)); 
  for (int i = 0; i<*k; i++) 
    { 
     array2[i] = (int*) malloc(*l * sizeof(int)); 
     for (int j = 0; j<*l; j++) 
     { 
       array2[i][j] = rand() %50; 
     } 
    } 
} 
 
void inputT(int* array1, int** array2,int *k,int *l,int *c) 
{ 
  char INPUT[50]; 
  FILE *S1; 
  printf("Enter the name of the file in which you entered data:"); 
  scanf("%s", INPUT); 
  S1 = fopen(INPUT, "r"); 
  if(S1 == NULL) 
    { 
      printf("Cannot open file input\n"); 
      fclose(S1); 
      exit(1); 
    } 
  while(fscanf(S1,"%d%d%d", k, l, c)!=EOF); 
  printf("\nYou have entered the number of columns %d and the number of columns %d",*k,*l); 
  printf("\nNumber C = %d", *c); 
  if (*k>=15 || *l>=25) 
    { 
      printf("\nYou entered more than 15 rows and 25 columns"); 
      fclose(S1); 
      exit(1); 
    } 
  array2 = (int**) malloc(*k * sizeof(int*)); 
  array1 = (int*) malloc(*k * sizeof(int)); 
  srand(time(NULL)); 
  for (int i = 0; i<*k; i++) 
    { 
      array2[i] = (int*) malloc(*l * sizeof(int)); 
      for (int j = 0; j<*l; j++) 
        { 
          array2[i][j] = rand() %50; 
        } 
    } 
} 
 
void massiv(int* array1, int** array2,int k,int l,int c)
{ 
  int i,j; 
 
  // находим первые числа, больше с и записываем их в массив b[]: 
  for (i=0; i<k; i++) 
  { 
    for (j=0; j<l && array2[i][j]>=c; j--) 
    // пустой цикл до первого элемента больше с 
    if (j<l) array1[i] = array2[i][j]; 
    else array1[i] = 0; 
  } 
} 
 
void outputT(int* array1, int** array2,int k,int l) 
{ 
  FILE *S1,*S2; 
  int i,j;
  char OUTPUT[50]; 
  S1 = fopen("S1.txt", "r"); 
  printf("\nEnter the name of the file you want to output (with the extension):"); 
  scanf("%s", OUTPUT); 
  S2 = fopen(OUTPUT, "w"); 
  if (S2 == NULL) 
    { 
      printf("Ошибка при открытии файла!\n"); 
      fclose(S2); 
      exit(1) ; 
    } 
  fprintf(S2,"\narray a[k,l]:\n"); 
  for (i=0; i<k; i++) 
    { 
      for (j=0; j<l; j++) 
      fprintf(S2,"%3d", array2[i][j]); 
      fprintf(S2,"\n"); 
    } 
 
  // выведем на экран получившийся массив b[]: 
  fprintf(S2,"\narray b:\n"); 
  for (i=0; i<k; i++) 
  fprintf(S2,"%3d", array1[i]); 
  fprintf(S2,"\n"); 
  fclose(S2); 
  fclose(S1); 
} 
 
void output(int* array1, int** array2,int k,int l) 
{ 
  int i,j; 
  printf("\narray a[k,l]:\n"); 
  for (i=0; i<k; i++) 
    { 
      for (j=0; j<l; j++) 
      printf("%3d", array2[i][j]); 
      printf("\n"); 
    } 
 
  // выведем на экран получившийся массив b[]: 
  printf("\narray b:\n"); 
  for (i=0; i<k; i++) 
  printf("%3d", array1[i]); 
  printf("\n"); 
} 
 
 
int main(void) { 
  int key; 
  int k,l,c; 
  int* array1; 
  int** array2; 
  FILE *S1,*S2; 
  printf("This program rewrites from the elements A(K,L), K<15, L<25 found in each row of\n "); 
  printf("the elements, large C, in the array B. If there is no such element in the line\n "); 
  printf("write zero.\n "); 
  printf("Do you wnat enter date from FILE (1) or CONSOLE (2) "); 
  scanf("%d", &key); 
  if (key == 1) 
    { 
      printf("You take input from FILE\n"); 
      inputT(&array1, &array2,&k,&l,&c); 
      massiv(&array1, &array2,k,l,c); 
      output(&array1, &array2,k,l); 
      outputT(&array1, &array2,k,l); 
    } 
  if (key == 2) 
    { 
      printf("You take input from CONSOLE\n"); 
      input(&array1, &array2,&k,&l,&c); 
      massiv(&array1, &array2,k,l,c); 
      output(&array1, &array2,k,l); 
      outputT(&array1, &array2,k,l); 
    } 
  free(array1); 
  free(array2); 
  return 0; 
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2018, 09:12
Ответы с готовыми решениями:

Передача значений двух переменных в основную функцию
Доброго дня! Господа, поставлена задача: передать в функцию массив, найти минимальное и...

Передача переменных в функцию
Привет Пацаны :) Немогу понять работу функции. Ниже пример. &lt;?php function...

Передача 2х переменных в функцию
2 приватных переменных х и y есть void метод А вычисляет свои вопросы принимает, передает и...

Передача переменных в функцию
Некоторую заминку у меня вызвала следующая ситуация. Предположим, есть класс С: public...

3
Диссидент
Эксперт C
26738 / 16659 / 3650
Регистрация: 24.12.2010
Сообщений: 37,264
05.07.2018, 09:20 2
Цитата Сообщение от SkyLark_71 Посмотреть сообщение
компилятор жалуется
В каком месте?
0
3 / 2 / 1
Регистрация: 12.10.2017
Сообщений: 213
05.07.2018, 09:30  [ТС] 3
Байт, почти на все переменные вот в этих функциях
inputT(&array1, &array2,&k,&l,&c);
massiv(&array1, &array2,k,l,c);
output(&array1, &array2,k,l);
outputT(&array1, &array2,k,l);
error #2140: Type error in argument 1 to 'inputT'; expected 'int *' but found 'int * *'.
error #2140: Type error in argument 2 to 'inputT'; expected 'int * *' but found 'int *'.
error #2140: Type error in argument 1 to 'massiv'; expected 'int *' but found 'int * *'.
0
Диссидент
Эксперт C
26738 / 16659 / 3650
Регистрация: 24.12.2010
Сообщений: 37,264
05.07.2018, 22:12 4
SkyLark_71, Вы думаете, что мне очень интересно ползать по простыне вашего кода? Смею вас уверить, что это не самое интересное для меня занятие. Трудно что ли номера строк указать?
Но в общих чертах понятно. Запутались с указателями.
Цитата Сообщение от SkyLark_71 Посмотреть сообщение
inputT(&array1, &array2,&k,&l,&c);
строка 144. Видимо надо
C
1
inputT(array1, array2,&k,&l,&c);
Ну и так далее...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2018, 22:12
Помогаю со студенческими работами здесь

Передача переменных в функцию
#include &lt;iostream&gt; int fun(int x, int y, int z); int main() { int x, y, z;

Передача переменных в функцию
Какой из следующих вариантов передачи переменных в функцию лучше всего использовать? Так сказать...

Передача значений переменных в функцию()
int main() Братья программисты! Вот занимаюсь немножко... возник вопрос, но но книжке его ведь не...

Для чего используеться передача структурных переменных в функцию?
Вообщем прошу помощи. 1) Для чего используеться передача структурных переменных в функцию? Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru