ads3579 2022-05-30 23:33 采纳率: 69.2%
浏览 91
已结题

自定义函数无法运行,如何解决?(语言-c语言)

下面“programrepeat”函数单独拿出来运行没问题,但是和前两个函数一起运行就运行不了。大家帮帮忙
#include<stdio.h>
#include<math.h>

double interest(double amount, int years, double interest_rate)
{
return amount * pow(1 + interest_rate, years);
}

int untilDoubling(double interest_rate)
{
int untilDoubling = round(log(2)/log(1+interest_rate));//Aufrunden
return untilDoubling;
}

int programrepeat(charquestion,charpossible,char*positive)
{
int programrepeat;
while(*positive!='y'&&*positive!='Y'&&*positive!='n'&&*positive!='N')
{
printf("%s\n",question);
scanf("%s",positive);
}

programrepeat=1;
return programrepeat;

}

int main(void)
{

double betrag, zinssatz, auszahlung;
int jahre, jahre_wait;
char *ques,*poss,*posi;

do
{
printf("What amount do you want to invest? ");
scanf("%lf", &betrag);
fflush(stdin);

printf("What is the interest rate?");
scanf("%lf", &zinssatz);
fflush(stdin);

printf("How long should the term of the savings contract be? ");
scanf("%d", &jahre);
fflush(stdin);

auszahlung = interest(betrag, jahre, zinssatz);//Funktionsaufruf

printf("You get: %lf\n", auszahlung);
jahre_wait = untilDoubling(zinssatz);//Funktionsaufruf
printf("You need %d years to double your money\n",jahre_wait);

ques = "Wollen Sie noch eine Berechnung durchfuehren?";
printf("%s\n",ques);
scanf("%s",posi);
programrepeat(ques,poss,posi);
}
while(*posi=='y'||*posi=='Y');

return 0;

}

  • 写回答

4条回答 默认 最新

  • qzjhjxj 2022-05-31 10:34
    关注

    修改处见注释,供参考:

    #include <stdio.h>
    #include <math.h>
    
    double interest(double amount, int years, double interest_rate)
    {
        return amount * pow(1 + interest_rate, years);
    }
    
    int untilDoubling(double interest_rate)
    {
        int untilDoubling = round(log(2) / log(1 + interest_rate));//Aufrunden
        return untilDoubling;
    }
    
    int programrepeat(char* question, char* possible, char* positive)//修改
    {
        int programrepeat;
        do{                               //修改
            printf("%s\n", question);
            getchar();                  //修改
            scanf(" %c", &(*positive));  //修改
        }while (*positive != 'y' && *positive != 'Y' && *positive != 'n' && *positive != 'N');
        programrepeat = 1;
        return programrepeat;
    }
    
    int main(void)
    {
        double betrag, zinssatz, auszahlung;
        int   jahre, jahre_wait;
        char* ques, * poss,  posi; //修改 * posi
        do{
            printf("What amount do you want to invest? ");
            scanf("%lf", &betrag);
            fflush(stdin);
    
            printf("What is the interest rate?");
            scanf("%lf", &zinssatz);
            fflush(stdin);
    
            printf("How long should the term of the savings contract be? ");
            scanf("%d", &jahre);
            fflush(stdin);
    
            auszahlung = interest(betrag, jahre, zinssatz);//Funktionsaufruf
    
            printf("You get: %lf\n", auszahlung);
            jahre_wait = untilDoubling(zinssatz);//Funktionsaufruf
            printf("You need %d years to double your money\n", jahre_wait);
    
            ques = "Wollen Sie noch eine Berechnung durchfuehren?";
            //printf("%s\n", ques);   //修改
            //scanf("%s", posi);      //修改
            programrepeat(ques, poss, &posi);
        } while (posi == 'y' || posi == 'Y');
    
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月8日
  • 已采纳回答 5月31日
  • 创建了问题 5月30日

悬赏问题

  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥20 spring boot集成mqtt的使用问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物