Also ich bin neu in SO und meine Frage wurde nicht gut erhalten ... also habe ich es bearbeitet, um informativer zu sein.Warnung: Format '% d' erwartet Typ 'int', aber Argument 2 hat den Typ 'int (*) (int *, int *, int)'
Ich versuche, ein Programm zu schreiben, das zwei Funktionen im Hauptprogramm aufruft. Das habe ich bisher:
#include <stdio.h>
#define N 10
int inner_product(int a[], int b[], int n);
int inner_product_reverse(int a[], int b[], int n);
int main(void) {
int a[N], b[N], i;
printf("Enter the first array of size 10: ");
for (i = 0; i < N; i++)
scanf("%d", &a[i]);
printf("Enter the second array of size 10: ");
for (i = 0; i < N; i++)
scanf("%d", &b[i]);
printf("Inner product is: %d\n", inner_product);
printf("Inner product reverse is: %d\n", inner_product_reverse);
return 0;
}
int inner_product(int a[], int b[], int n) {
int sum = 0, i;
for (i = 0; i < N; i++)
sum += (a[i] * b[i]);
return sum;
}
int inner_product_reverse(int a[], int b[], int n) {
int sum = 0, i;
for (i = 0; i < N; i++)
sum += (a[i] * b[(N-1)-i]);
return sum;
Aber ich bekomme den Fehler im Titel. Ich weiß, dass es eine Frage des Unterschieds in der Zahl der Argumente ist, die genannt werden, aber ich bin nicht sicher, wie man es in einer Weise schreibt, die alle Argumente der Funktionen berücksichtigt. Müsste ich die for-Schleife verschieben, die irgendwie das innere Produkt in das main berechnet? Vielen Dank.
Was Sie bisher versucht haben? Auf welche Probleme hast du gestoßen? Zeigen Sie Ihre Bemühungen. SO ist kein Service für deine Hausaufgaben. – tambre
Am besten definieren. Eine einfache For-Schleife würde die Arbeit erledigen. –
Wenn Sie eine Funktion aufrufen, die eine int-Variable zurückgibt, rufen Sie die Funktion auf, übergeben Sie den Zeiger nicht an sie. – tilz0R