2015-03-12 1 views
0

Как я могу получить каждый элемент массива от ввода пользователя, а затем передать его функции в другой файл. У меня возникли проблемы и вам нужна помощь. Это мой код.Как получить каждый элемент массива от пользовательского ввода, затем передать его функции в другой файл в C

main.c

#include <stdio.h> 
#include "lab8.h" 

int x[100]; 
int y[100]; 

int main(void) { 
    int count, i, product; 

    printf("Enter the length of both arrays\n"); 
    scanf("%d", &count); 

    printf("Enter the first array's elements\n"); 
    for(i=0; i<count; i++){ 
     scanf("%i", &x[i]); 
    } 
    printf("Element: %i\n", x[i]); 
    printf("Enter the second array's elements\n"); 
    for(i=0; i<count; i++){ 
     scanf("%i", &y[i]); 
    } 
    product = inner_product(x, y, count); 
    printf("Inner product: %i\n", product); 

    return(0); 
} 

lab8.c

#include <stdio.h> 
#include "lab8.h" 

int inner_product(int a[], int b[], int count) { 
    int i; 
    int result = 0; 

    for(i=1; i<count; i++) { 
     result = result + (a[i] * b[i]); 
    }  
    return result; 
} 

только кажется умножают последний элемент ввода для ввода обоих массивов ЭРВО выхода.

Enter the length of both arrays 
2 
Enter the first array's elements 
1 
2 
Element: 0 
Enter the second array's elements 
3 
3 
Inner product: 6 

ответ

2

Проблема заключается в том, что вы переборе от 1 и вы должны повторять от 0, в функции inner_product()

for(i=1; i<count; i++) { 
/* ^this should be 0 */ 

также не использовать глобальные переменные специально, потому что вы получили остаток правильно, вы передаете массивы в качестве аргументов функции inner_product().

+0

Вы знаете, поскольку имя функции является 'inner_product()' Я предполагаю, что вы студент физики, как тот, который можно использовать для «maple», где массивы индексируются от «1» до «N» или, возможно, pascal', который я не помню, если он слишком индексирует массивы таким образом, в c от «0» до «N-1», и я полагаю, что это связано с арифметикой указателя. –

+0

Computer science major. И спасибо за помощь. Поэтому я не должен использовать глобальные переменные x и y? – user4766244

+0

Нет, это плохая идея вообще, только в особых ситуациях глобальные переменные в порядке. Но в вашем случае они вам даже не нужны. –

 Смежные вопросы

  • Нет связанных вопросов^_^