输出最大值问题
#include <stdio.h>
using namespace std;
float max(float x,float y)
{
float z;
if(x>y)z=x;
else z=y;
return(z);
};
int main()
{
float a,b,c;
scanf("%d,%d,",&a,&b);
c=max(a,b);
printf("%d,%d,the max is %f\n",a,b,c);
getchar();
}
无法运算要不就出错 c c++
[解决办法]
using namespace std;
//不需要吧,你又没声名iostream
[解决办法]
楼主貌似才开始学习吧。。这个我的解答如下。
#include <stdio.h>
// using namespace std; 目测楼主使用的c语言,所以这句话是多余的。
float max(float x,float y)
{
float z;
if (x>y) z=x;
else z=y;
return z;
}; // 你的调用函数写的没错
int main()
{
float a,b,c; // 都是单精度的。。
//scanf("%d,%d,",&a,&b); // 此处为什么输入为%d ?你貌似定义的是单精度类型吧。
scanf("%f%f,",&a,&b); // 你的输入语句中"%d,%d,"含有逗号,为方便输入,去掉调号了。。
c=max(a,b);
//printf("%d,%d,the max is %f\n",a,b,c); 此处为什么输出为%d ?你貌似定义的是单精度类型吧。。
printf("%f,%f,the max is %f\n", a,b,c);
// getchar(); 这句话可要可不要
return 0 ; // 主函数int main(), 为int型, 故此处需要返回值
}
运行结果如下:
[解决办法]
输入必须严格一致,因为输入参数,是指针,类型不对应(尤其是格式长,类型短),指针操作越界,产生数据输入紊乱。
%f,%e,%E,%g,%G-->float
%lf,%e,%lE,%lg,%lG-->float
%c-->char
%i -->int
%hd-->short
%d -->int
%ld-->long
%lld-->long long
%hu-->short
%u -->int
%lu-->long
%llu-->long long
%hx-->short
%x -->int
%lx-->long
%llx-->long long
%s --->char[];
[解决办法]
scanf();
printf();
//注意注意: 两个格式化输入输出函数,格式化,对应格式!!!
//格式没有对应起来,出了什么错都是你的错!!!
[解决办法]
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。