鱼C论坛

 找回密码
 立即注册
查看: 1283|回复: 2

[已解决]新手程式码

[复制链接]
发表于 2019-2-2 17:04:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x


写了个函式然后我写了下main试下能不能运行 但是没东西输出
求大佬看看
3.14 那本来写pi 然后也报错。。

#include <stdio.h>
#include <math.h>

float computeArea(int *v1, int *v2, int shape)
{
        float area;
        while(shape = 3){
                area = 3.14 * ((*v1) /2)^2;
        }
        while(shape = 1){
                area = (*v1) * (*v2);
        }
        while(shape = 2){
                area = (*v1) * (*v2) / 2;
    return area;
        }
}

int main(){
    int a=2;
    int b=4;
    float area = computeArea(&a,&b,1);
    printf("%f", area);
    return 0;
}
最佳答案
2019-2-2 17:59:36
    楼主的代码存在很多问题:

    1、条件判断应该用 if 而不是 while

    2、值判断应该使用 == 而不是 =

    3、指数应该用函数 pow() 而不是 ^

    应该这么改:

  1. #include <stdio.h>
  2. #include <math.h>

  3. float computeArea(int * v1 , int * v2 , int shape)
  4. {
  5.         float area                                               ;
  6.         area = 0.0                                               ;
  7.         switch(shape) {
  8.                 case 1:
  9.                         area = (*v1) * (*v2)                     ;
  10.                         break                                    ;
  11.                 case 2:
  12.                         area = (*v1) * (*v2) / 2                 ;
  13.                         break                                    ;
  14.                 case 3:
  15.                         area = 3.14 * pow(((*v1) / 2) , 2)       ;
  16.                         break                                    ;
  17.         }
  18.         return area                                              ;
  19. }

  20. int main(void){
  21.         int a = 2 , b = 4 , shape                                ;
  22.         float area                                               ;
  23.         for (shape = 1 ; shape < 4 ; shape ++) {
  24.                 area = computeArea(&a , &b , shape)              ;
  25.                 printf("shape = %d , area = %f\n", shape , area) ;
  26.         }
  27.         return 0                                                 ;
  28. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-2-2 17:59:36 | 显示全部楼层    本楼为最佳答案   
    楼主的代码存在很多问题:

    1、条件判断应该用 if 而不是 while

    2、值判断应该使用 == 而不是 =

    3、指数应该用函数 pow() 而不是 ^

    应该这么改:

  1. #include <stdio.h>
  2. #include <math.h>

  3. float computeArea(int * v1 , int * v2 , int shape)
  4. {
  5.         float area                                               ;
  6.         area = 0.0                                               ;
  7.         switch(shape) {
  8.                 case 1:
  9.                         area = (*v1) * (*v2)                     ;
  10.                         break                                    ;
  11.                 case 2:
  12.                         area = (*v1) * (*v2) / 2                 ;
  13.                         break                                    ;
  14.                 case 3:
  15.                         area = 3.14 * pow(((*v1) / 2) , 2)       ;
  16.                         break                                    ;
  17.         }
  18.         return area                                              ;
  19. }

  20. int main(void){
  21.         int a = 2 , b = 4 , shape                                ;
  22.         float area                                               ;
  23.         for (shape = 1 ; shape < 4 ; shape ++) {
  24.                 area = computeArea(&a , &b , shape)              ;
  25.                 printf("shape = %d , area = %f\n", shape , area) ;
  26.         }
  27.         return 0                                                 ;
  28. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-2 18:20:40 | 显示全部楼层
#include <stdio.h>
#include <math.h>

float computeArea(int *v1, int *v2, int shape)
{
        float area;

        if(shape == 3)
                {
                area = (float)(3.14 * (*v1 / 2));
                                area = (float)pow(area, 2);
        }

        if(shape == 1)
                {
                area = (float)((*v1) * (*v2));
        }

        if(shape == 2)
                {
                area = (float)((*v1) * (*v2) / 2);                       
        }

                return area;
}

int main()
{
    int a=2;
    int b=4;

    float area = computeArea(&a,&b,1);

    printf("%f", area);

    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-13 09:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表