簡體   English   中英

C程序查找區域

[英]C program to find area

我在使用以下代碼時遇到問題:

#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 circle\n2.Area of Square\n3.Area of Rectangle\n");
  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 %d\n",area);
        break;

     case 2:printf("\nenter the edge of square\n");
        scanf("%d",&a);
        area=area_rect(a,a);
        printf("\nArea of square is %d\n",area);
        break;

     case 3:printf("\nenter the lenght n breadth of rectangle\n");
        scanf("%d%d",&a,&b);
        area=area_rect(a,b);
        printf("\nArea of rectangle is %d\n",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 %d\n",area);

area是一個float ,您正在使用%d格式字符串,該字符串用於int變量。 那將無法使用-使用%e%f%g%a

對於浮點數,請在printf中使用%f。 通常,要非常小心地將printf中的%與傳遞的參數匹配。 不做任何檢查,這完全由程序員負責

printf("\nArea of circle is %f\n",area);

您正在使用%d打印float問題。

除了您的錯誤,還有另外一件事:

只是不要被conio.h卡住,好吧……繼續前進:)

area的類型為float並且您正在使用%d說明符進行打印。 職能

 area_rect()
 area_crcl()

兩者都返回分配給area float值(也是float)
更改

 printf("\nArea of circle is %d\n",area);

 printf("\nArea of circle is %f\n",area);

printf(“ \\ n圓的面積為%d \\ n”,面積);

區域是浮動的,因此上面的語句將不起作用,請在下面使用正確的語句:

printf(“ \\ n圓的面積是%f \\ n”,area);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM