大圣啥也不会 2022-09-09 10:45 采纳率: 61.1%
浏览 35
已结题

将代码封装函数,放置单独文件,连接文件运行

哪位码农可以帮我解决,我需要详细步骤才看得懂,(1)将下列加减乘除运算运算封装成一个函数,(2)和将加减运算运算的函数放置的单独文件中,并定义连接文件运行。下面是代码(麻烦各路码农了)if那行 choice我去掉了,不然发不出去,你们加一下:

#include<stdio.h>

int main()

float a,b

flot result;

int choice;

while(1)
{
printf("pla imput choice:\n");
printf("1.add,2.sub,3.mul,4.div,S-exit\n");
scanf("%d",&choice);
if (choice !=1&& !=2&& !=3&& !=4&& !=5)
{
printf("you choice error!\n");
return 0;
}
if(choice==5)
{
return 0;
}
printf("pls intput two flost numer:\n");
scanf("%f %f",&a,&b);
switch(choice)
{
case 1:result=a+b;break;
case 2:result=a-b;break;
case 3:result=a*b;break;
case 4:result=a/b;break;
}
printf("result:%f",result);
}

  • 写回答

1条回答 默认 最新

  • _GX_ 2022-09-09 14:11
    关注

    calc.h

    #ifndef CALC_H
    #define CALC_H
    
    extern float add(float a, float b);
    extern float sub(float a, float b);
    extern float mul(float a, float b);
    extern float div(float a, float b);
    
    #endif
    

    calc.c

    #include "calc.h"
    
    float add(float a, float b) { return a + b; }
    
    float sub(float a, float b) { return a - b; }
    
    float mul(float a, float b) { return a * b; }
    
    float div(float a, float b) { return a / b; }
    

    main.c

    #include "calc.h"
    #include <stdio.h>
    
    int main() {
      float a, b, r;
      int choice;
      while (1) {
        printf("1: add, 2: sub, 3: mul, 4: div, 5: exit\n");
        printf("Please input choice: ");
        if (scanf("%d", &choice) != 1) {
          printf("input error\n");
          break;
        }
        if (choice < 1 || choice > 5) {
          printf("invalid choice, please try again\n");
          continue;
        }
        if (choice == 5)
          break;
        printf("Please input two float numbers: ");
        if (scanf("%f%f", &a, &b) != 2) {
          printf("input error\n");
          break;
        }
        switch (choice) {
        case 1:
          r = add(a, b);
          break;
        case 2:
          r = sub(a, b);
          break;
        case 3:
          r = mul(a, b);
          break;
        case 4:
          r = div(a, b);
          break;
        default:
          break;
        }
        printf("result: %f\n", r);
      }
    
      return 0;
    }
    
    $ gcc -c calc.c -o calc.o
    $ gcc -c main.c -o main.o
    $ gcc main.o calc.o -o calc
    $ ./calc
    1: add, 2: sub, 3: mul, 4: div, 5: exit
    Please input choice: 1
    Please input two float numbers: 2 3
    result: 5.000000
    1: add, 2: sub, 3: mul, 4: div, 5: exit
    Please input choice: 3
    Please input two float numbers: 4 5
    result: 20.000000
    1: add, 2: sub, 3: mul, 4: div, 5: exit
    Please input choice: 5
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月17日
  • 已采纳回答 9月9日
  • 创建了问题 9月9日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效