读书人

输出最大值有关问题

发布时间: 2013-10-06 18:25:14 作者: rapoo

输出最大值问题
#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型, 故此处需要返回值

}


运行结果如下:


[解决办法]
引用:
float 的输入怎么用 %d 应该用 %lf
输入必须严格一致,因为输入参数,是指针,类型不对应(尤其是格式长,类型短),指针操作越界,产生数据输入紊乱。
%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代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。

读书人网 >C++

热点推荐