声明
这一串代码用c语言写的为了本人为巩固基础熟悉编程思路的小程序。
本人入手c不是特别长时间,敲的代码也没有超过百个,因为想为弄智能小车铺路,所以想转变思路,想跳过c直接从c++开始学,结果效果并不是特别好,于是反过来对C语言(除了指针模块)进行基础巩固练习,以下代码是自己的思路,第一次写这些,请键下留情,如果有更好的思路,请不吝赐教,如果要转载,麻烦给个提醒,谢谢。
以下是本人的代码
#include<stdio.h> float my_torget(float x, float y); float main() { float a; float b; float c; printf("请输入原始数据和期望倍率:"); scanf_s("%3f %3f",&a,&b); c = my_torget(a, b); if (0 <= a <= 750 &&b >= 0&&c<=750) { printf("期望数据为%.2f", c); } else { printf("输入错误",c); } return 0; } float my_torget(float x, float y) { float z; z = x * y; return z; }
主体比较简单,由自定义函数和主函数构成,能实现限制数据输出和错误警告两个功能,能够按照预想的那样运行。
这个程序出现了个bug,就是编译器有了else后面的内容就会出现2个警告和1个消息,如下:
警告 C6271 传递给 "printf" 的额外参数。
警告 C4474 printf: 格式字符串中传递的参数太多 。
消息 占位符和其参数预计 0 可变参数,但提供的却是 1 参数 。
解决方法如下:在定义 字符 wrong
char wrong;
将这串代码
{
printf("输入错误",c);
}
改为
wrong;
编译器警告解除,且输入数值出现错误将不再出现结果(包括0)。但是这样操作以后代码就只有限制数据输出这一个功能了。
修改后代码如下:
#include<stdio.h>
float my_torget(float x, float y);
float main()
{
float a,b, c;
char wrong;
printf("请输入原始数据和期望倍率:");
scanf_s("%3f %3f",&a,&b);
c = my_torget(a, b);
if (0 <= a <= 750 && b >= 0 && c <= 750)
{
printf("期望数据为%.2f", c);
}
else wrong;
}
float my_torget(float x, float y)
{
float z;
z = x * y;
return z;
}
学习就是内化的过程,需要一定的时间,当我们感觉学的东西还有很多的时候,说明我们正在朝着高效的模式前进,一起加油。