Ich habe diese Aufgabe, wo wir ein Programm erwartet, das eine positive ganze Zahl als ein Befehlszeilenargument nimmt und die kleinste Primzahl größer als die angegebene Zahl druckt. Die Hauptfunktion sollte nicht bearbeitet werden. Sie können jedoch eine Header-Datei zum Definieren der benötigten Funktionen erstellen.Inkompatibler Zeiger Compilerfehler
Bis jetzt ist das, was ich gefunden habe, ich kann einfach nicht herausfinden, was mit meinem Programm falsch ist. Hilfe wird geschätzt.
Hauptfunktion: Ich kann die Hauptfunktion nicht ändern, aber Sie einen Header
#include "slow-prime.h"
int main(int argc, char *argv[]) {
int num;
int nxt;enter code here
int ret = EXIT_FAILURE;
if (argc < 2) {
printf("error: missing command line argument\n");
goto ERROR;
if (get_number(argv[1], &num)) {
printf("error: %s not a number\n", argv[1]);
goto ERROR;
}
next_prime(num, &nxt);
printf("%d\n", nxt);
ret = EXIT_SUCCESS;
ERROR:
return ret;
}
}
benötigten Funktionen in der langsam prime.h werden schaffen können
erstellt#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// define true and false
#define true 1
#define false 0
// check whether the numer is prime or mnot
int isPrime(int num){
if (num < 2) {
return false;
}
for (int i = 2; i <= num/i; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
// get number
void get_number(char *argv[], int num) {
num = atoi(argv[1]);
}
// loop through the numbers/ and pick the one
void next_prime(int num, int next){
for(int i = 2; i < 80; i++){
if (isPrime(i) == true){
next = i;
if (next > num) {
return exit(0);
}
}
}
}
Fehlermeldung :
ich Ihre Kommentare gefolgt haben, und ich war in der Lage zu loswerden aller Fehler bis auf eine: Anweisung erfordert Ausdruck des Skalartyps ('ungültig' ungültig) if (get_number (argv [1], & num)) { – ab141
@ ab141, es ist mir nicht klar, wann Sie den Rückgabewert erwarten von 'get_number' zu 'false' und wann zu 'true'. –