Το παρακάτω πρόγραμμα προσθέτει διανύσματα ν διαστάσεων:
/*
* Add two vectors
*
* Diomidis Spinellis, December 1998
*/
#include <stdio.h>
/*
* Print the contents of vector v consisting of n elements
*/
void
vector_print(double v[], int n)
{
int i;
putchar('(');
for (i = 0; i < n; i++) {
printf("%g", v[i]);
if (i < n - 1)
printf(", ");
}
putchar(')');
}
/*
* Input a vector v consisting of n elements
*/
void
vector_input(double v[], int n)
{
int i;
for (i = 0; i < n; i++) {
printf("\tEnter element %d: ", i);
scanf("%lg", &v[i]);
}
}
/*
* Sum vector a and vector b to vector c
* All vectors consist of n elements
*/
void
vector_add(double a[], double b[], double c[], int n)
{
int i;
for (i = 0; i < n; i++)
c[i] = a[i] + b[i];
}
main()
{
int nelem;
double a[10], b[10], c[10];
printf("Enter number of vector elements: ");
scanf("%d", &nelem);
if (nelem > sizeof(a) / sizeof(double)) {
printf("Vector size too large. The maximum vector size is %d.\n",
sizeof(a) / sizeof(double));
return (1);
}
printf("Enter vector a\n");
vector_input(a, nelem);
printf("Enter vector b\n");
vector_input(b, nelem);
vector_add(a, b, c, nelem);
vector_print(a, nelem);
putchar('+');
vector_print(b, nelem);
putchar('=');
vector_print(c, nelem);
}
- Να το μεταγλωττίσετε και να το δοκιμάσετε στη μορφή που είναι.
- Να το αλλάξετε έτσι ώστε να μην έχει περιορισμό ως προς το
μέγεθος των διανυσμάτων που μπορεί να δεχτεί.
- Να το αλλάξετε έτσι ώστε να μην εμφανίζονται καθόλου σε αυτό οι
χαρακτήρες [ και ] (χρησιμοποιήστε δείκτες αντί για πίνακες).