У меня есть это назначение, где мы ожидали написать программу, которая принимает положительное целое число в качестве аргумента командной строки и печатает наименьшее простое число , большее указанного числа. Основная функция не должна редактироваться, однако вы можете создать заголовочный файл для определения необходимых функций.ошибка несовместимого указателя-компилятора
До сих пор это то, с чем я столкнулся, я просто не могу узнать, что не соответствует моей программе. Помощь приветствуется.
Основная функция: Я не могу изменить основную функцию, однако, вы можете создать заголовок
#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;
}
}
необходимые функции создаются в замедленной prime.h
#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);
}
}
}
}
Сообщение об ошибке :
Я следовал за ваши комментарии, и я был в состоянии избавиться от всех ошибок, кроме одного: для выражения требуется выражение скалярного типа ('void' invalid) if (get_number (argv [1], & num)) { – ab141
@ ab141, мне не ясно, когда вы ожидаете, что возвращаемое значение из 'get_number' для вычисления« false »и« true ». –