gpt4 book ai didi

c - C 中的多个函数和指针

转载 作者:太空宇宙 更新时间:2023-11-04 07:10:42 27 4
gpt4 key购买 nike

这是一项学校作业,所以我不希望得到太多帮助。不幸的是,类(class)是在线的,老师不能像面对面那样讲课,所以我很难理解某些概念。在这种情况下是使用指针和多个函数。我的代码编译正常,但在将信息输入程序后,它崩溃了。我感到迷茫,希望有人能帮助我更好地理解这一点,因为我真的很想改进我的编码。如果我的代码很糟糕,我深表歉意:

    #include <stdio.h>

int get_data(int *cust_num, int *kwh);
int calculate_charge(int *kwh, double *rate);
int print_results(int *cust_num, int *kwh, double *rate);

int
main(){

int pwr, tot_cust, tot_kwh, customer;
char ans;
double charge, tot_charge;

do{

/*get data*/
get_data(&customer, &pwr);


/*calculate data*/
calculate_charge(&pwr, &charge);


/*print data*/
print_results(&customer, &pwr, &charge);

/*continue?*/
printf("\nDo you have any more data to input? (y/n)> ");
scanf("%c", ans);
tot_cust ++;
tot_kwh = tot_kwh + pwr;
tot_charge = tot_charge + charge;
}while(ans == 'y');
/*print final*/
printf("\nTotal Customers: %d Total KWH used: %d Total Charges:
%.2f", tot_cust, tot_kwh, tot_charge);

return 0;
}

int get_data(int *cust_num, int *kwh){
*cust_num = *cust_num;
*kwh = *kwh;

printf("Please enter the customer number and the kwh> ");
scanf("%d", &cust_num);
scanf("%d", &kwh);



}

int calculate_charge(int *kwh, double *rate){

/*calculate cost*/
if(*kwh <= 300){
*rate = .09 * *kwh;
}

else if ((*kwh > 300) && (*kwh <= 600)){
*rate = .09 * 300 + ((*kwh - 300) * .08);
}

else if ((*kwh > 600) && (*kwh <= 1000)){
*rate = .09 * 300 + .08 * 300 + ((*kwh - 600) * .06);
}
else {
*rate = .09 * 300 + .08 * 300 + .06 * 400 + ((*kwh - 1000) * .05);
}

}

int print_results(int *cust_num, int *kwh, double *rate){

printf("\nTotal Customers: %5d, Total kwh: %5d, Total charge: %5.2f",
*cust_num, *kwh, *rate);
}

最佳答案

您的代码中存在许多问题。首先,

第 1 点。scanf("%c", ans); 应该是 scanf("%c", &ans);

第 2 点。您正在执行 tot_cust++;,但没有初始化 tot_cust

第3点,get_data()函数中,cust_numkwh是指针。在 scanf() 中使用时不需要放置 &

第 4 点。*cust_num = *cust_num;*kwh = *kwh; 语句不是必需的。

也许还有更多。根据 @WhozCraig 先生的建议,请启用编译器警告并尝试修复它们。

关于c - C 中的多个函数和指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28681428/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com