![]() |
0 Всего найдено: 10
woofer46
Сообщение
21/10/2010 18:07
Копия темы
Кто знает C (си). Подскажите в чем ошибки и как быть #include "stdafx.h" #include "conio.h" #include "stdio.h" int func (int a[]); //прототип функ void main() { int x; int a [7] = {1,12,-15,-3,5,1,11}; x = func (a[7]); printf ("%d",x); getch(); } int func (int a[]) { int i; int min = a[0]; for (i=1; i<6; i++) { if (min > a[i]) min = a[i]; } return min; } Выдает ошибку error C2664: func: невозможно преобразовать параметр 1 из 'int' в 'int []' я только учусь не пинайте))
nazavrik
Сообщение
21/10/2010 18:24
Копия темы
Давай логически мыслить. Функция предполагает передачу в качестве параметра массив типа инт: int func (int a[]); А Вы передаете здесь x = func (a[7]); элемент типа инт. О этом Вам и говорит компилятор. Попробуй так: x = func (a);
woofer46
Сообщение
21/10/2010 18:37
Копия темы
Аааааа, ну да точно, не логично было. А еще у меня такой вопрос, как посчитать количество элементов массива? это я хочу для того чтобы for (i=1; i<6; i++) // i<6/// место шестерки подставлялось число эл-тов
nazavrik
Сообщение
21/10/2010 21:25
Копия темы
Во-первых, обрати внимание на то, что в цикле for (i=1; i<6; i++) обработаются только 5 элементов + нулевой (а у тебя массив из 7 элементов). Во-вторых, для задания размерности статического массива можно вначале объявить глобальную константу: const int n = 10; void main() { ... int a[n] = ... ... } В-третьих, в функцию int func можно помимо массива передавать количество элементов в массиве: int func (int a[], int len); Ты ведь всегда знаешь, сколько элементов ты запишешь в массив ;)
woofer46
Сообщение
23/10/2010 16:07
Копия темы
Я не понял про int func (int a[], int len); а точнее про int len и что с ним делать
nazavrik
Сообщение
24/10/2010 09:13
Копия темы
int func (int a[], int len); Ну например. //У нас есть массив размерности n: int a [n]; //Вводим счетчик элементов в массиве. Изначально в массиве элементов нет. int count = 0; //Каждый раз при добавлении элемента в массив счетчик увеличивается count++; //При удалении, уменьшается count--; //Когда нам нужно что-то сделать с элементами массива в функции, мы вместе с массивом, передадим count число элементов в массиве func( a, count ); //А в самой функции будут обрабатываться не все ячейки массива, а только те, в которых есть элементы: nt func (int a[], int len){ for( int i = 0; i<len; i++){ //Обрабатываем a[i] } }
woofer46
Сообщение
24/10/2010 14:17
Копия темы
А, понял, это я не в ту сторону немного пошел. Можно последний вопрос, а то мне уже неудобно их задавать)) Вот если я хочу помимо минимального числа вывести и его порядковый номер, как быть, я пробовал вернуть две переменные(min,i) но как то не выходит, и не пойму что можно сделать?
nazavrik
Сообщение
24/10/2010 14:33
Копия темы
0
Несколько вариантов. 1. (не желательный) Можно объявить глобальные переменные min_el и min_in, в функции им присвоить значения элемента и индекса, они будут доступны в любом месте программы. 2. Использовать структуру. Объявить структуру, которая будет состоять из двух полей: элемент и индекс. При вызове функции заполнять поля структуры и передавать из функции уже саму структуру. 3. Проще всего сделать две отдельные функции, одна для вычисления значения, другая для определения индекса. |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |