求高手,两道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语言编写题的主要内容,如果未能解决你的问题,请参考以下文章

求解两道C语言的编程

c语言读程序写出执行结果,求高手帮忙解答

求高手编写一个万年历的C语言程序

急求一道编程题

两道c语言题目求解

求高手,c语言题目,随机输入一个数,范围100到1000.判断它是不是是6和19的倍数。最好for语