尘世- 2023-01-06 16:14 采纳率: 80%
浏览 16
已结题

函数返回值的使用出现的问题

在练习用C语言进行简答的编程时,发现无法对一个函数的返回值进行使用。
将函数的返回值进行,使用时进行到相应语句就不在执行反而进行前一个函数的运行,将输入的内容重复输入才能调用最后的数据,请问如何直接调用函数的返回数据,而不是运行一遍函数。
int yuanshishu ()
{
    int choose2;
    
    printf("***************欢迎使用原石计数部分*************\n");
    printf("请输入您要计算的内容:整个版本的收益:1\n");
    printf("请输入您要计算的内容:一半卡池时间内的收益:2\n"); 
    printf("请输入您要计算的内容:本时间到卡池关闭前的收益:3\n");
    scanf("%d",&choose2);
    switch(choose2)
    {
        case 1:    
            system("cls");
            all(); //原石数目函数的调用
            total();
            break;
    /*    case 2:
            system("cls");
            half();//树脂函数的调用
            break;
        case 3:
            now();
            break;
        default:
            printf("输入错误,请重新输入\n");
            system("pause");//暂停,防止程序闪退
            system("cls"); //清屏函数
            break;
            */
    }
}
int all()
{
    int b_yue = 0, b_ri = 0, b_nian = 0;
    int f_yue = 0, f_ri = 0, f_nian = 0;
    int n_yue = 0, n_ri = 0, n_nian = 0;
    int day=0,day_one=0,day_two=0; 
    int yuanshione = 0, yuanshitwo = 0;
    int yuanshizong = 0, xing = 0;
    int yuanshi = 0,isolate=0;
    double p = 0.0, banbenhao = 0.0;
    int ka = 0,choose2;
    int yuefenrun[12] = {31,28,31,30,31,30,31,31,30,31,30,31 };
    printf("请输入现阶段的版本号:\n");
    scanf("%f", &banbenhao);
    printf("请输入版本开始的日期:年-月-日\n");
    scanf("%d %d %d", &b_nian, &b_yue, &b_ri);
    printf("请输入版本结束的日期:年-月-日\n");    
    scanf("%d %d %d", &f_nian, &f_yue, &f_ri);
/*    printf("请输入现在进行计算的日期的日期:年-月-日\n");    
    scanf("%d %d %d", &n_nian, &n_yue, &n_ri);
    */
    day_one=yuefenrun[b_yue-1]-b_ri+1;
    day_two=f_ri;
    day=day_one+day_two;
    printf("版本持续时间为:%d天\n",day);    
    return day;
}

int total()
{
    int ka;
    int rock=0,rock_one,rock_two,is,ai_all;
    printf("请问您是否充值小月卡\n");
    printf("是请输入----1不是请输入---0\n");
    scanf("%d", &ka);
    if(ka==1)
    {
    rock_one=all()*60;
    rock_two=all()*90;
    rock=rock_one+rock_two;
    is=rock_two/160;
    printf("您充值的小月卡获得的原石收益为%d",rock);
    printf("合计为%d抽",is);
    }
    else
    {
    rock=60*all();
    }
    ai_all=rock/160;
    printf("您所有的收益合计为%d",ai_all);
} 


img

img

虽然可以调整前后顺序完成这部分的功能,但是有返回值的函数不是可以直接调用,返回是数据吗?
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
  • 写回答

2条回答 默认 最新

  • 於黾 2023-01-06 16:25
    关注

    all();
    是要干啥,调用了但又不接收它的返回值,白调用一次
    要么你接收它的返回值,并把它继续传递给total函数,total中就不要再调用all了
    要么把total外面的all删掉

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月14日
  • 已采纳回答 1月6日
  • 创建了问题 1月6日

悬赏问题

  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教