2013-04-03 3 views
0

Im пытается написать программу, которая взять два массива на другой вход PRINTF, а затем вычислить скалярное произведение, до сих пор это, где я получаю, мне нужна помощьDot продукт два массива

#include <stdio.h> 
#include <stdio.h> 
#define SIZE 8 
float droprod(float x[], float y[], int size[]); 

int main() 
{ 
    int i ; 
    int Vx[SIZE], Vy[SIZE] ; 

    printf("Enter 1st vector (q to quit) "); 
    for (i=0;i<SIZE;i++) 
    { 
       scanf("%d", &Vx[i]); 
    } 

    printf("Enter 2nd vector (q to quit) "); 
    for (i=0;i<SIZE;i++) 
    { 
        scanf("%d", &Vy[i]); 
    } 

printf("vectors [%d] [[%d] ", Vx[SIZE], Vy[SIZE]); // to double check my input, and it is not giving me the right input. 

return 0; 
+3

Какая у вас проблема? Какой результат вы получаете и какой результат вы ожидаете? Возникает ли ваша проблема для всех входов или только для некоторых? С таким расплывчатым вопросом очень сложно помочь. –

+1

'Vx [SIZE]' вне диапазона – BLUEPIXY

ответ

2

printf не может непосредственно печатать массивы. Вы должны печатать каждый элемент вручную, скажем, for цикл:

printf("vectors ["); 
for(i = 0; i < SIZE; i++) { 
    if(i != 0) { 
     printf(", "); 
    } 
    printf("%d", Vx[i]); 
} 
printf("] ["); 
/* same for the other array */ 
printf("]"); 

Вы можете даже обернуть эту логику в функции:

void print_vector(int vec[SIZE]) { 
    printf("["); 
    for(int i = 0; i < SIZE; i++) { 
     if(i != 0) { 
      printf(", "); 
     } 
     printf("%d", vec[i]); 
    } 
    printf("]"); 
} 

Тогда ваш код будет выглядеть следующим образом:

printf("vectors "); 
print_vector(Vx); 
printf(" "); 
print_vector(Vy); 
+0

Почему бы не сделать одну функцию, которая печатает вектор? Вместо/* для другого массива * /? –

+0

Цель ответов - продемонстрировать решение, а не всегда писать наиболее идеальный возможный код. Мы все будем здесь весь день, если мы попытаемся это сделать. Если требуется модульность, попроситель может ее легко добавить. –

+0

@ i19: Это хорошая идея. Я добавил его к моему ответу. – icktoofay

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