求高手,两道c语言编写题

如题所述

第一题,头文件是
#include <math.h>

第二题,对于不超过3位的int x,x/100是它的百位,x%10是它的个位,x/10%10是它的十位。

做题求严谨,输入x以后判断它是不是在范围内,不在直接退出。
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-04-19
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;
}

本回答被提问者采纳
第2个回答  2019-04-18
第一个用if else语句就可以吧

C语言简单编程题目两道,求高手做一下。高分!!!
if (val == 0 || val == 2 || val == 4 || val == 6 || val == 8) { \/\/ 取得的数只要是这5个数中任意一个, count计数就加1 count ++;} } if (count == 4) { \/\/ 如果count=4表示4个位都是0\/2\/4\/6\/8 b[j++] = a[i]; \/\/ 则复制此数字到b数组中...

两道C语言的题,求解(高分)
return b;else return c;}

两道C语言程序题,书写出来,急急急,各位大神。
if(i%5!=0&&i%7!=0)\/\/第二题只需要在这里添加这句就可以了 不能被5和7整除 根据情况修改 s+=i;} printf("%d\\n",s);return 0;}

两道C语言编程题,大虾尽快帮帮忙
注意,你给的那个过程是错的5472576 => 5 +4 +7+2+5+7+6 =36 => 3+6 =9

两道c语言编程,能不能帮忙分析一下结果为什么不同?
第二道:因为STU中的char name[10]声明的name是个数组,当b=a操作后b就是a的拷贝,但后面对b中的数组的操作不会影响对a中的数组。所以输出结果应该是Zhao,m,290,Qian,f,350。余同上。指针和数组拷贝后都有两个实体,但数组是对两个实体操作,而两个实体指针指向的目标却是同一个。尽管f中对...

c语言提~~求高手
void main( ){ int a,b,c,i,j,mid,num,t,l;int f[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};\/\/for(i=0;i<15;i++)\/\/ scanf("%d",f[i]);for(i=0;i<14;i++){ for(j=0;j<14-i;j++)if(f[j]<f[j+1]){ t=f[j+1];f[j+1]=f[j];f[j]...

下图所示的题目用C语言怎么编,求高手指教
int array[]={45,56,76,234,1,34,23,2,3}; \/\/ 假定 array[] 是全局量 void sort();int main(){ \/\/ int i; \/\/ 输出检查结果时要一个循环变量 sort();\/\/ for ( i=0;i<9;i++) printf("%d ",array[i]); \/\/ 输出检查结果 return 0;} void sort(){ int i,j...

c语言编程题,请高手帮忙做一下,拜谢,急急急急……
1.include <stdio.h> double funcPi(int);int main(void){ int arg;printf("Input the argument: ");\/\/ \/\/ 无异常输入 \/\/ while (!scanf("%d", &arg)){ printf("Check your input and retry: ");while (getchar()!='\\n'){ continue;} } while (getchar()!='\\n'){ continue...

高手用C帮我编写几个程序,我学习参考。~!!
第二题:冒泡法排序思路:从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使 这两个数交换位置。第一遍的(N-1)次比较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以 此类推直到第(N-1)遍比较后就可以完成排序。另外注意:c语言中的数组元素下标是...

C语言的题,高手快点来救救我,
void main() { int a[N]={ 8,6,5,4,1 },i,j,k;for ( i=0;i<N-1;i++ ) for ( j=i+1;j<N;j++ ) if ( a[i]>a[j] ) {k=a[i];a[i]=a[j];a[j]=k;} for ( i=0;i<N;i++ ) printf("%d ",a[i]); printf("\\n");} include<stdio.h> deinfe N...

相似回答