C语言初级问题求解=。= 为什么我的这段程序用int %d可以算 但是用float %f却运行不了呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言初级问题求解=。= 为什么我的这段程序用int %d可以算 但是用float %f却运行不了呢?相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
main()

float a,b,c,d,e,f,g;
scanf("%f%f",&a,&b);
c=a+b;
d=a-b;
e=a*b;
f=a/b;
g=a%b;
printf("c=%f\n",c);
printf("d=%f\n",d);
primtf("e=%f\n",e);
printf("f=%f\n",f);
printf("g=%f\n",g);
getch()

参考技术A 你的程序有4个错误
1.最后一行分号掉了
2.最后一行没有定义函数类型 是int
3.倒数第4行是printf 不是m
4.就是你问的问题 因为浮点型是不可以用%除的 取余数本来就是整数范围的 所以你把那些数定义为整数就可以了
参考技术B 相对浮点数求模还是用函数 fmod() 吧, 原型为 double fmode(double x,double y) ,功能是返回浮点数x/浮点数y的余数,计算过程为n=x÷y,fmode(x,y)=x-n*y;结果取偏向0的整数。 参考技术C 英文报错肯定是 %d cannot use to float.must be intergret.之类的错误
楼上很多正解,取余符号两边都必须是整形数据
参考技术D %求余运算,两边的数据类型必须是整型的 第5个回答  2011-11-07 g=a%b;

就是这里,你要对float取模么?

c语言用函数求最大值的程序出错,求解

这是vc6.0编译的结果以及错误解释
#include <stdio.h>#include <stdlib.h>
void main()

int max(int x, int y); int a,b,c;
scanf("%d,%d",&a,&b); c = max(a , b); printf("max is = %d\n",c); system("pause");
int max(int x, int y) int z; z = x>y ? x:y; return (z);


D:\程序\大时代\sadasd.c(9) : error C2059: syntax error : 'type'D:\程序\大时代\sadasd.c(18) : error C2059: syntax error : 'type'
--------------------------------------------------------------------
以下是vs2013编译的结果

#include <stdio.h>#include <stdlib.h>#define _CRT_SECURE_NO_WARNINGS /**不知道#define _CRT_SECURE_NO_WARNINGS去百度)
void main()

int max(int x, int y); int a, b, c;
scanf("%d,%d", &a, &b); c = max(a, b); printf("min is = %d\n", c); system("pause");
int max(int x, int y) int z; z = x>y ? x : y; return (z);


3 IntelliSense: 应输入标识符 c:\Users\成\Documents\Visual Studio 2013\Projects\Project1从\Project1从\源.c 10 6 Project1从 4 IntelliSense: 应输入标识符 c:\Users\成\Documents\Visual Studio 2013\Projects\Project1从\Project1从\源.c 19 5 Project1从 5 IntelliSense: 应输入“;” c:\Users\成\Documents\Visual Studio 2013\Projects\Project1从\Project1从\源.c 20 1 Project1从错误 1 error C2059: 语法错误:“类型” c:\users\成\documents\visual studio 2013\projects\project1从\project1从\源.c 10 1 Project1从错误 2 error C2059: 语法错误:“类型” c:\users\成\documents\visual studio 2013\projects\project1从\project1从\源.c 19 1 Project1从
------------------------------------------------

我是初学者,现在学到函数,我打那个程序,就是用函数来求最大值。结果出了问题,这个程序是照着视频里打的,视频里编译没有问题,我用vs2013和vc6.0编译的,结果都出错,而且vs2013指出的错误比vc6.0还多,我看提示也不知道错在哪里,语法?算法?

#include <stdio.h>
#include <stdlib.h>
void main()

 int mmax(int x,int y); //可能是有max这个库函数,换个函数名
 int a,b,c;
 scanf("%d,%d",&a,&b); //建议改成scanf("%d%d",&a,&b); 
 c = max(a , b); 
 printf("max is = %d\\n",c); 
 system("pause");

int mmax(int x, int y)

int z;
z = x>y ? x:y;
return (z);

追问

提示
错误 1 error C2059: 语法错误:“类型”
错误 2 error C2059: 语法错误:“类型”

追答

你是VC6.0吗?我的没提示错误啊

追问

用vs2013和vc6.0都编过,
都提示语法错误,并指向这里 int mmax(int x,int y);
int mmax(int x,int y)
............

追答

我用VC再测试了一次,没错
建议你把Debug文件删除了重新试一次

追问

能运行了

参考技术A 函数不能在主函数里定义,应该放到主函数外。这样编译OK了追问

为什么群里的人运行都可以?而且视频里的记录都没有问题吧,我是照视频里的程序打的

追答

看错了,你的代码太乱。不过是正确的,理论上能运行。
因为max是stdlib.h里面的函数,C语言不支持重载,但C++支持。所以你要把文件改成.cpp就行了,

追问

你把我说的“视频里的记录”都无视了么,我可是照视频里写的程序打的,难道还有误?更何况视频记录是可以运行,而且我把这个程序复制给群里,要求他们实验下,结果他们都说可以。为什么我不可以?
即使改成CPP,还是提示语法错误。

追答

不可能,我已经试过了。我已经说过了你的程序是没问题的,因为你从视频里照敲的,而且我已经看过了。如果把文件改成cpp格式是能运行的,我已经试验过了,不然也不会来回答你。

参考技术B #include <stdio.h>#include <stdlib.h>int max(int x, int y); void main() int a,b,c; scanf("%d,%d",&a,&b); c = max(a , b); printf("max is = %d\n",c); system("pause");int max(int x, int y) int z; z = x>y ? x:y; return z;

我改成这样后可以运行。追问

不行,提示栏内,提示语法错误

追答

。。怎么会这样?要不试试重新建立一个工程编译试一试

追问

重建也没用

追答

把函数名max改一下试试

追问

改成什么样?楼上那样?我试过还是提示语法错误

追答

我晕。。我在linux上没有任何提示,这个我真是无力了。

参考技术C int max(int x, int y);这个声明应该放在main函数的外面,函数里面怎么可以声明函数呢?
#include <stdio.h>
#include <stdlib.h>
int max(int x, int y);
void main() int a,b,c; scanf("%d,%d",&a,&b);
c = max(a , b);
printf("max is = %d\n",c);
system("pause");
int max(int x, int y)

int z; z = x>y ? x:y;
return (z);追问

vs2013提示 语法错误 "类型",vc6.0中提示syntax error

追答

你检查一下标点符号,特别是逗号,分号,引号这类的,是不是用的是中文的标点,编译器不认识的。

以上是关于C语言初级问题求解=。= 为什么我的这段程序用int %d可以算 但是用float %f却运行不了呢?的主要内容,如果未能解决你的问题,请参考以下文章

c语言算某天使星期几,使用了蔡勒公式,可是2000年1月1日到2月29日这段时间的反馈结果都是错的,求解~

C语言折半查找之递归算法

C语言double 输入输出的问题,如图的程序,输入数值进去总是输出00000,求解!

八皇后问题求解的C语言程序的实现

大神求解,C语言问题

C语言 递归程序 求解