C程序查找区域

C program to find area

本文关键字:区域 查找 程序      更新时间:2023-10-16

我对以下代码有问题:

#include<stdio.h>
#include<conio.h>
float area_crcl(int);
float area_rect(int,int);
void main()
 {
 int n,a,b,r;
 float area;
 clrscr();
  printf("nEnter your choice-n1.Area of circlen2.Area of Squaren3.Area of Rectanglen");
  scanf("%d",&n);
   switch(n)
     {
     case 1:printf("nEnter the radius of circle..n");
        scanf("%d",&r);
        area=area_crcl(r);
        printf("nArea of circle is %dn",area);
        break;
     case 2:printf("nenter the edge of squaren");
        scanf("%d",&a);
        area=area_rect(a,a);
        printf("nArea of square is %dn",area);
        break;
     case 3:printf("nenter the lenght n breadth of rectanglen");
        scanf("%d%d",&a,&b);
        area=area_rect(a,b);
        printf("nArea of rectangle is %dn",area);
        break;
     default:printf("nU entered wrong choice..n");
   }
  getch();
 }
 float area_crcl(int r)
   {
    float area;
    area=3.14*r*r;
    return area;
   }
 float area_rect(int a,int b)
   {
    float area;
    area=a*b;
    return area;
   }

我得到的输出是:

输入您的选择-1.圆的面积2.广场面积3.矩形面积1

输入圆的半径。。2

圆的面积为0

为什么我得到0作为输出?

您的打印声明是:

printf("nArea of circle is %dn",area);

areafloat,您使用的是%d格式的字符串,它用于int变量。这不起作用——使用%e%f%g%a

对于浮点,请在printf中使用%f。一般来说,要非常小心地将printf中的%与传递的参数相匹配。没有进行检查,这完全由程序员负责

printf("nArea of circle is %fn",area);

您正在使用%d打印float,这是您的问题。

除了你的错误还有一件事:

只是不要被conio.h卡住,好吧。。。继续生活:)

printf("圆的面积是%d\n",面积);

区域是浮动的,所以上面的语句将不起作用,请使用下面的正确语句:

printf("圆的面积是%f\n",面积);

area的类型为float,您正在使用%d说明符来打印它。功能

 area_rect()
 area_crcl()

两者都返回分配给area的浮点值(也是浮点值)
更改

 printf("nArea of circle is %dn",area);

 printf("nArea of circle is %fn",area);