admin管理员组文章数量:1794759
分段函数求法(if和switch)
文章目录 题目描述: 计算函数值。如果x≥100或x<36,则输出y无定义的信。 首先是整型变量的设置以及x的输入 int x,y printf("请输入x:>"); scanf("%d",&x);
其次对输入的x进行判断 x≥100或x<36,或在c语言中用 “||”表示
if(x >= 100 || x < 36) { printf("输入无效\\n"): return ; }当我们输入的值在上述范围内时程序会直接跳出结束,我们可以用while循环来使程序一直运行。
while(!) { printf("请输入x:>"); scanf("%d",&x); if(x >= 100 || x < 36) { printf("输入无效,请重新输入\\n"): continue; } }当输入无效时continue跳出,重新进入循环,重新输入重新判断。 当输入有效x后,根据x进行相关函数的计算;有两种方法可以实现计算(if语句和switch语句) 方法一 if语句 根据输入的x进行判断,再进入相应的语句中
if (x >= 81 && x < 100) { y = x + 2; } if (x >= 64 && x < 81) { y = 2 * x + 3; } if (x >= 49 && x < 64) { y = 2 * x + 4; } if (x >= 36 && x < 49) { y = 4 * x + 5; }根据输入的x输出对应的y值
以下是运行过程的整个代码
#include<stdio.h> int main() { while (1) { int x, y; printf("请输入x:>"); scanf("%d", &x); if (x >= 100 || x < 36) { printf("输入无效...\\n"); continue; } else { if (x >= 81 && x < 100) { y = x + 2; } if (x >= 64 && x < 81) { y = 2 * x + 3; } if (x >= 49 && x < 64) { y = 2 * x + 4; } if (x >= 36 && x < 49) { y = 4 * x + 5; } } printf("y=%d\\n", y); break; } return 0; }不难发现用if分支实现求解过程很容易理解,但是连续使用if语句是整个代码看起来过于复杂,因此我们可以使用switch语句来简化上述过程。 方法二 switch语句 前面部分跟上述一样不同的是else语句后面,但是我们应如何得到case语句中的整形常量表达式。
int t = (x >= 36) + (x >= 49) + (x >= 64) + (x >= 81);当输入的x与判断条件匹配时,得到1,反之为0; 当81≤x<100时,t=1; 当64≤x<81时,t=2; 当49≤x<64时,t=3; 当36≤x<49时,t=4; 这种判断可以通过t的值得出case的整形常量表达式。 代码如下:
int t = (x >= 36) + (x >= 49) + (x >= 64) + (x >= 81); switch (t) { case 1: y = x + 2; break; case 2: y = 2 * x + 3; break; case 3: y = 2 * x + 4; break; case 4: y = 4 * x + 5; break;运用switch解决了if语句的复杂 全部代码:
#include<stdio.h> int main() { while (1) { int x, y; printf("请输入x:>"); scanf("%d", &x); if (x >= 100 || x < 36) { printf("输入无效...\\n"); continue; } else { int t = (x >= 36) + (x >= 49) + (x >= 64) + (x >= 81); switch (t) { case 1: y = x + 2; break; case 2: y = 2 * x + 3; break; case 3: y = 2 * x + 4; break; case 4: y = 4 * x + 5; break; } printf("y=%d\\n", y); break; } return 0; }运行结果 总结:通过不同种方法巧妙化简代码的复杂性以及重复性,但是并不是所有的switch语句比if简单,根据实际情况再选择使用,做到简化代码,举一反三,为以后的代码打下坚实基础。这种方法也可用于计算个人所得税……
版权声明:本文标题:分段函数求法(if和switch) 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686497723a74155.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论