十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
scanf函数的原型如下:
成都创新互联公司-成都网站建设公司,专注成都网站建设、成都做网站、网站营销推广,域名注册,虚拟主机,绵阳服务器托管有关企业网站制作方案、改版、费用等问题,请联系成都创新互联公司。
int scanf(const char * restrict format,...);
scanf的为什么返回值被忽略的原因是你的代码中没有使用scanf的返回值。
最简答的解决方案是强制忽略返回值:
(void) scanf("%d", m);
另外一种方法是定义一个临时变量接收scanf函数的返回值。
int ret = scanf("%d", m);
这个编译器还有一个错误,它建议你不要用scanf,而是改为用scanf_s。
C语言中,如果要函数不返回值,则应该吧函数的类型定义为“void”。
在将函数定义为void类型的情况下在主调函数中调用该函数,该函数调用表达式不能被用作子表达式给其他变量赋值。
void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
扩展资料:
void类型指针要注意规则:
1、void 指针是一种特殊的指针,表示为“无类型指针”,在 ANSI C 中使用它来代替“char*”作为通用指针的类型。由于 void 指针没有特定的类型,因此它可以指向任何类型的数据。
2、void*类型只有地址信息没有类型信息,所以不能计算偏移。
3、要将void指针赋值给其他类型的指针,必须进行强制类型转换。
4、在编程中,如果函数的参数可以是任意类型指针,那么应该使用 void 指针作为函数的形参,这样函数就可以接受任意数据类型的指针作为参数。
void使用注意:
1、如果函数没有返回值,那么应声明为void类型,在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。但是许多程序员却误以为其为void类型。
2、如果函数无参数,那么应声明其参数为void。
3、void不能代表一个真实的变量
参考资料来源:百度百科-void
一个函数的函数名既是该函数的代表,也是一个变量。由于函数名变量通常用来把函数的处理结果数据返回给调用函数,即递归调用,所以一般把函数名变量称为返回值,函数的返回值类型是在定义函数时指定的。
函数可以有返回值,也可以没有返回值。
1、没有返回值的函数:功能只是完成一个操作,应将返回值类型定义为void,函数体内可没有return语句。
2、有返回值的函数:函数的最后会有一个返回值return,可以用来获取该函数执行结果返回给该函数,让外部调用该函数的。
一个函数的函数名既是该函数的代表,也是一个变量。由于函数名变量通常用来把函数的处理结果数据返回给调用函数,即递归调用,所以一般把函数名变量称为返回值,函数的返回值类型是在定义函数时指定的。
扩展资料
C程序中的print函数:
是这样写的:printf("%d\n",printf("%d",printf("%d",i)));
一共有三个printf函数,我们可以使用一些代号来简化这个printf函数,如下:
代号A: printf("%d",printf("%d",i));
代号B: printf("%d",i)
则C程序代码可以简化为:printf("%d\n",A); 那么我们就先来求A。而A,又可以简化为:printf("%d",B);那么就先来求B。
B是 printf("%d",i),打印出“123”,即在C语言运行结果中,你最先看到的是123。C语言printf函数的返回值是printf实际控制输出的字符数,那么打印的123 就是3个字符,因此printf("%d",i)返回的就是3,也就是B是3。
那么,A就可以写为printf("%d",printf("%d",3));打印出3,即在运行结果中,你紧接着会看到3。
而打印出的3是1个字符,因此A就是1,那么printf("%d\n",A); 实际上就是printf("%d\n",1); 打印出1。
参考资料来源:百度百科-返回值
return 0; 返回0
returm1; 返回1
如果这两句连起来用的话,返回0,后面的不会执行
函数都会有返回值,这个份两大类,一个是主函数,一个是子函数
第一大类是主函数,也就是main函数的返回值,
main也会有返回值,但是很少不会用到,一般来说大家都会忽略掉,一般来说不讨论
但是在vc等编译器中,好像是要求写的return 0,对应main函数要加类型,也就是说写主函数的时候int main(),必须写上,要不然出错
但是void main()这个可以不用,我记得好像是这样
第二大类是子函数的返回值
这个一般是两种
一个是void型的子函数,这个子函数要求不需要返回值,也就是这个函数功能不需要返回值的子函数。
这个也是有个返回值的,好像是调用成功返回非零,不成功返回零
第二种是非void型的子函数,这个函数会返回一个定义子函数时类型的一个数值
如定义int f(int m)这个就是返回一个int型的数值
值得注意的是
1、子函数返回值只有一个,不可能返回多个值。
如果需要多个返回值,有两个解决方案。一是用指针或者数组,
一个是定义子函数参数的时候用指针地址,在子函数中改变主函数变量的内容
2、在子函数中遇到return调用一定会结束子函数的调用,不管下面有多少代码
其实还有一种返回值,也就是系统自带的功能函数。也就是头文件中包含的一些函数
这个是了解内容,其实和子函数的意义一样(他也是子函数,不过不是你编写的),可以打开头文件看功能函数的定义,就知道函数的返回值是什么或者什么类型
这里值得注意的是重要的经常用到的两个函数。scanf,printf。这个百度一下很清楚
gets和puts也要注意一下,因为经常用到
1、使用scanf函数时,会报错“返回值被忽略”,是因为微软认为scanf不安全导致的。
2、将使用的scanf函数替换为scanfs,好像scanf_s只有微软的编译器支持。
3、在文件的最开始添加下面一行,忽略安全检测,不然使用scanf会报错。
试试:
将第4行改成
double x,y=0;
将第6行改成
if(scanf("%lf",x)==1x0)