1
我正在制作一个程序来将体重和身高从公制转换为美国,反之亦然。我成功完成了高度部分,但具有重量的部分给我一个运行时错误,即堆栈周围的变量已损坏。堆栈周围的变量已损坏。 C visual studio
我知道发生在数组中,因为当我谷歌问题时,我得到的就是这些,但这是在2个不同函数中发生的一个常规整数变量。
这是调用其它函数来转换重量的功能,一个用于输入,一个是转换和一个用于输出:
void weight_to_metric(void){
int kilograms, pounds;
double grams, ounces;
int * pkilograms= &kilograms, *ppounds=£s;
double * pgrams=&grams, *pounces=&ounces;
input_us_weight(ppounds, pounces);
weight_us_to_metric(ppounds, pounces, pkilograms, pgrams);
output_metric_weight(pkilograms, pgrams);
}
这是输入
void input_us_weight(int* feet, double * inches){
printf("enter the number of pounds you want to convert: ");
scanf(" %lf", feet, "\n");
printf("enter the number of ounces you want to convert: ");
scanf(" %lf", inches, "\n");
}
功能
这是转换的功能
void weight_us_to_metric(int* pounds, double* ounces, int* kilograms, double * grams){
double temp_kilograms;
*kilograms = *pounds/2.2046 + ((*ounces/16)/2.2046);
temp_kilograms = *pounds/2.2046 + ((*ounces/16)/2.2046);
*ounces = ((temp_kilograms - *kilograms) *2.2046)*16;
*grams = ((*ounces/16.0)/2.2046) * 1000;
}
输出功能不甚至处理腐败的变量。腐败的变量是磅。在初始变量中声明的整数磅。
我该如何解决这个问题?