Я пытаюсь найти область и периметр круга с помощью указателей. Правильный код выглядит следующим образомУказатели на C, ненормальное поведение
#include<stdio.h>
void main(){
int radius;
float area, peri;
printf("Enter the radius of a circle: ");
scanf("%d", &radius);
areaperi(radius, &area, &peri);
printf("Area is %f\nPerimeter is %f", area, peri);
}
areaperi(int r, float *a, float *b){
*a = 3.14*r*r;
*b = 2*3.14*r;
}
Но если я заменю тип данных радиуса плавать при декларировании и сканирования радиуса и изменений типа r
в areaperi()
он дает мне ошибку.
#include<stdio.h>
void main(){
float radius;
float area, peri;
printf("Enter the radius of a circle: ");
scanf("%f", &radius);
areaperi(radius, &area, &peri);
printf("Area is %f\nPerimeter is %f", area, peri);
}
areaperi(float r, float *a, float *b){
*a = 3.14*r*r;
*b = 2*3.14*r;
}
[Ошибка] Конфликтующие типы для areaperi
Я использую Dev C++.
Я не понимаю, почему мой код не работает для плавающего значения радиуса.
ли вы изменить типы как в прототипе функции и определения функции? –
Если вы изменяете тип данных радиуса, необходимо также изменить секцию scanf. – lordofire
Вы не указали код, в котором вы * замените тип данных *. Как вы ожидаете, что мы скажем вам, почему он не работает, когда вы не показываете нам, что вы сделали? Если вы хотите, чтобы мы объяснили, почему ваш код не работает, укажите ваш код. Мы не можем видеть ваш экран с того места, где мы находимся, и мы не можем читать ваши мысли. –