Указатель нельзя использовать в калькуляторе - PullRequest
2 голосов
/ 09 мая 2020
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>

#define PI 3.142

main(){

    float fn, sn, ans;

    printf("Hello, please enter your first number and second number: ");

    scanf("%f %f", &fn, &sn);

    ans = (fn**sn);

    printf("%f", ans);

}

Компилятор жалуется, что в строке с ans = (fn**sn); требуется указатель.

Какой указатель требуется? Я попытался вставить "" в оператор, но на выходе получилось неправильное число, а не степень fn и sn.

Ответы [ 2 ]

2 голосов
/ 09 мая 2020

В отличие от Python, ** не является допустимым оператором в C. Компилятор обрабатывает первое * как умножение, но затем он думает, что второй * разыменовывает указатель, а sn не является.

Если вы пытаетесь выполнить умножение, используйте одиночный *. Если вы пытаетесь выполнить возведение в степень, используйте pow из math.h.

Например,

ans = pow(fn,sn);
1 голос
/ 09 мая 2020

Что должно быть ans ?

ans имеет тип float .

fn и sn тоже относятся к типу float .

Вы не можете использовать оператор "*" для sn . Вы можете использовать его только для указателей. Но sn не является указателем.

...