2013-06-24 3 views
-1

Я пытаюсь понять, как использовать массив в качестве аргумента для функции.Как использовать массив как аргумент функции

У меня ошибка, когда я ставил аргументы таким образом: minimum ([5], 10). Это очевидно неправильно, но я не знаю, как это сделать правильно.

Мой пример

#import <Foundation/Foundation.h> 

int minimum(int values[],int numElements) 
{ 
    int minValue,i; 
    minValue = values[0]; 

    for(i=1;i < numElements; ++i) 
     if(values[i] < minValue) 
      minValue = values[i]; 

    return(minValue); 
} 

main() 
{ 
    @autoreleasepool { 
     int result; 
     NSLog(@"For values 5 and numElements 10 results minValue %i", minimum([5],10); 
    } 

    return 0; 
} 
+0

Что именно вы пытаетесь сделать? Что означает '[5]? –

+0

Почему вы пытаетесь сделать это вообще (как вопрос Objective-C)? Чего вы на самом деле пытаетесь достичь? – Wain

+0

Это скорее вопрос C, чем вопрос Objective-C. – ipmcc

ответ

0

Pass, используя свое имя и какой член.

printf("at 0=%d at 5=%d", functionname(array), functionname(&array[5])); 

Вы должны указать местоположение (адрес) элемента массива. Если вы используете только имя, это то же самое, что и запись массива & [0] (адрес 0-го члена массива). В противном случае массив & [member] создаст адрес, начинающийся с этого элемента.

2

Вы хотите проверить минимальное значение первых 5 значений в array[10]? в C вы можете сделать это таким образом

#include <stdio.h> 

int minimum(int values[], int numElements) /* or simply int *values */ 
{ 
    int minValue,i; 

    minValue = values[0]; 
    for(i=1;i < numElements; ++i) /* do you mean i = 0? */ 
     if(values[i] < minValue) 
      minValue = values[i]; 

    return(minValue); 
} 

main() /* int main(void) */ 
{ 
    int result[10] = {7, 4, 5, 8, 1, 3, 2, 6, 7, 6}; 

    printf("%d\n", minimum(result, 5)); 
    return 0; 
} 
+0

Большое спасибо, Дэвид –

+0

приветствуются –