求高手,两道c语言编写题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求高手,两道c语言编写题相关的知识,希望对你有一定的参考价值。
第一题,头文件是#include <math.h>
第二题,对于不超过3位的int x,x/100是它的百位,x%10是它的个位,x/10%10是它的十位。
做题求严谨,输入x以后判断它是不是在范围内,不在直接退出。 参考技术A 1.第一个图的解答如下,由于引用了“math.h”头文件,在linux下编译的时候需引用数学库,
加上-lm参数,假设源文件名为test.c,则编译语句为gcc test.c -lm,生成a.out
可执行文件,也可用-o指明可执行文件名称,如gcc -o test test.c -lm。
#include "math.h"
#include "stdio.h"
int main()
float x = 0 ;
double result = 0.0;
do
printf("please input x (Ctrl+C for exit):");
scanf("%f",&x);//从键盘读取x值
if(x <= 1)
result = exp(x) + 1;
printf("e^%f+1=%lf\\n",x,result );
else if(x >1 && x <=5 )
result = (-4)*x + 5;
printf("-4*%f+5=%lf\\n",x,result );
else if(x >5 && x <=10 )
result = 2*x -1;
printf("2*%f-1=%lf\\n",x,result );
else
result = 3*x - 11;
printf("3*%f-11=%lf\\n",x,result );
while(1);
return 0;
2.图二答案如下,有注释解释,不懂欢迎提问
#include "stdio.h"#include "stdlib.h"
int main()
int num;
int ret;//返回值
unsigned char a;//存放百位数
unsigned char b;//存放十位数
unsigned char c;//存放个位数
unsigned char num_count;//位数统计
int num_invert;//逆序
do
printf("please input a num between(0,999](Ctrl+C for exit):");
ret = scanf("%d",&num);
/*输入不是整数,强制退出*/
if(ret != 1)
printf("please input a int num,now is to exit\\n");
exit(1);
/*输入超过范围,重新输入*/
if(num <= 0 || num > 999)
printf("input invalid,please input again\\n");
continue;//回到循环开始的地方
else
if(num/100 != 0)
num_count = 3;
a=num/100; //除以100得到百位数
b=(num/10)%10; //先除以10去掉个位数,然后取10余数就是十位数
c=num%10; //直接取10余数就是个位数
num_invert = c*100 + b*10 +a; //逆序数
else if(num/10 != 0)
num_count =2;
a = 0;
b = num/10;
c = num%10;
num_invert = c*10 + b;
else
num_count = 1;
a = 0;
b = 0;
c = num;
num_invert = c;
printf("%d 是 %d 位数,每一位的和是:%d,逆序打印为:%d\\n",num,num_count,a+b+c,num_invert );
while(1);
return 0;
本回答被提问者采纳 参考技术B 第一个用if else语句就可以吧
以上是关于求高手,两道c语言编写题的主要内容,如果未能解决你的问题,请参考以下文章