这个程序正常运行,但只有一个bug。它没有从欧元兑换成美元,只是给了我
0.0欧元= 0.0美元;
你能帮帮我吗?
#include <stdio.h>
#include <stdlib.h>
void dollar(float dollar);
int main()
{
char what;
int howmany;
int i;
float dollar2;
float euro2;
printf("enter how many times do you want to convert\n");
scanf(" %d", &howmany);
printf("enter U if you want to convert from USD to Euro\n");
printf("enter E if you want to convert from Euro to USD\n");
for(i=0; i<=howmany-1; i++)
{
scanf(" %c", &what);
if(what == 'E')
{
printf(" Enter how many euros do you want to convert\n");
scanf(" %f", &euro2);
euro(euro2);
}
if(what == 'U' ){
printf(" Enter how many dollars do you want to convert\n");
scanf(" %f", &dollar2);
dollar(dollar2);
}
}
return 0;
}
void dollar(float dollar)
{
float euro = 0.94 * dollar;
printf("%0.2f dollar = %0.2f euro\n", dollar, euro);
return;
}
void euro(float euro)
{
float dollar = 1.37 * euro;
printf("%0.2f EURO = %0.2f DOLLAR\n", euro, dollar);
return;
}
答案 0 :(得分:1)
&#34;在计算机编程中,函数原型或函数接口是函数的声明,它指定函数的名称和类型签名(arity,参数类型和返回类型),但省略了函数。BODY&#34; https://en.wikipedia.org/wiki/Function_prototype
基本上,由于欧元是在主要货币之后宣布的,当您在主要货币时调用欧元时,它不知道该功能在哪里。这可以通过将函数声明为main或使用函数原型来避免。
函数原型的结构就像这样
your_return_type function_name(arg_type,arg_type,arg_type....);
答案 1 :(得分:0)
你没有在euro()
之前声明main()
所以,当你在main()
中调用它时,编译器假定它需要int
作为参数,将你的值转换为0
当它通过时。
添加此
void euro(float value);
在main()
之前,它会起作用。
但是我建议检查scanf()
的返回值,即使它有效,因为它会更健壮,你会习惯做错误检查,这是一件非常繁琐的事情,但非常必要的事情。