Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
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 []'
я только учусь не пинайте))
mayakrd Сообщение 21/10/2010 18:16 Копия темы
x = func (a); 
woofer46 Сообщение 21/10/2010 18:22 Копия темы
Спасибо, заработало
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 Копия темы
Несколько вариантов.

1. (не желательный) Можно объявить глобальные переменные min_el и min_in, в функции им присвоить значения элемента и индекса, они будут доступны в любом месте программы.

2. Использовать структуру. Объявить структуру, которая будет состоять из двух полей: элемент и индекс. При вызове функции заполнять поля структуры и передавать из функции уже саму структуру.

3. Проще всего сделать две отдельные функции, одна для вычисления значения, другая – для определения индекса.
0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"