Ich versuche, den Bereich und den Umfang eines Kreises mit Zeigern zu finden. Der richtige Code sieht wie folgt ausZeiger in C, abnormes Verhalten
#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;
}
Aber wenn ich den Datentyp des Radius ersetzen zu schweben, während deklarieren und das Scannen des Radius und Änderungstyp von r
in areaperi()
es mir einen Fehler gibt.
#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;
}
[Fehler] Widersprüchliche Typen für areaperi
verwende ich Dev C++.
Ich verstehe nicht, warum mein Code nicht für Fließwert von Radius funktioniert.
Haben Sie Typen in beide Definition des Funktionsprototyp und die Funktion ändern? –
Wenn Sie den Radius-Datentyp ändern, sollte auch der ScanF-Abschnitt geändert werden. – lordofire
Sie haben den Code nicht angezeigt, in dem Sie * den Datentyp * ersetzen. Wie erwarten Sie, dass wir Ihnen sagen, warum es nicht funktioniert, wenn Sie uns nicht zeigen, was Sie getan haben? Wenn Sie möchten, dass wir erklären, warum Ihr Code nicht funktioniert, fügen Sie Ihren Code hinzu. Wir können Ihren Bildschirm nicht sehen, wo wir sind, und wir können Ihre Gedanken nicht lesen. –