几道C语言的题,求解

某下一代亲戚小盆友的题,得知我是程序员后发来求助,但我已改行好多年而且忘了C已更多年了根本想不起来啊!逻辑很简单就是不知道C里面怎么写。。求助。。下面是题目。。若干。。(... 某下一代亲戚小盆友的题,得知我是程序员后发来求助,但我已改行好多年而且忘了C已更多年了根本想不起来啊!逻辑很简单就是不知道C里面怎么写。。求助。。
下面是题目。。若干。。
(1) 编写一个程序实现如下功能,即:判断变量ch是否为数字字符
if((int)x==x)
printf("%f是整数",x)
这样可以吗?

(2) 编写一个程序实现如下功能,即:求y2+x2的运算结果,x,y为整数,由键盘输入
include<math.h>
function (x,y){
return pow(x,2)+pow(y,2);
}
这样可以不?好像C的函数不是这样吧。。。

(3) 编写程序,根据上网时间x计算上网费用y,计算的方法如下:
•当x< 10小时,上网费用: y=20元套餐费
•当10<=x<50小时,上网费用:套餐费加超过10小时部分每小时3元。
•当x>=50小时,上网费用:套餐费加超过10小时部分每小时2.5元
•同时为了鼓励多上网,每月收费最多不超过170元。
总之逻辑呢就是
function xxx(x) {

if (x<10) {y=20;}
elseif(x>=10 && x<50) {y=3*(x-10);}
elseif(x>=50) {y=2.5*(x-10);}
if (y>170) {y=170;}
return y;
}
求C语言版。。

4.编写程序,从键盘输入x值,根据下列分段函数式计算出y的值。
逻辑是这样的:
function xxx(x) {

if (x<=-1){y=x-1;}
elseif(x>-1 && x<=2){y=2*x;}
elseif(x<=2 && x>=10){y=x(平方)+2*x;}
elseif(x>10){y=-1;}
return y;
}
还是求C版

5.编写程序,从键盘输入5个实数,去掉一个最大值,去掉一个最小值,求其他三个数的平均值(输出时要求保留一位小数.)
p如输入2.1,3.5,4.3,1.9,3.7。p则输出3.5+2.1+3.7的平均值:3.1。

哭求答案
展开
 我来答
生秋
2014-05-18 · 超过24用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:46.2万
展开全部
第一题:
#include<stdio.h>

int main()
{
char ch;

ch = getchar();/*或者scanf("%c", &ch);*/

if(ch >= '0' && ch <= '9')
printf("YES\n");
else printf("NO\n");

return 0;
}

第二题
#include<stdio.h>
#include<math.h>

int main()
{
int x, y;

scanf("%d%d", &x, &y);

printf("%d\n", x*x + y*y);/*或者pow(x, 2) + pow(y, 2);*/

return 0;
}

第三题
逻辑没错,不过忘记加套餐费了
#include<stdio.h>
#include<math.h>

int main()
{
double x, y=20;

scanf("%lf", &x);

if(x>=10 && x<50)
y += 3 * (x-10);
else if(x>=50)
y += 2.5 * (x-10);
if (y>170)y=170;

printf("%.2f\n", y);

return 0;
}

第四题

#include<stdio.h>
#include<math.h>

int main()
{
int x, y;

scanf("%d", &x);

if (x<=-1)
y=x-1;
else if(x>-1 && x<=2)
y=2*x;
else if(x>=2 && x<=10)
y=x*x+2*x;
else if(x>10)
y=-1;

printf("%d\n", y);

return 0;
}

第五题
测试数据没加逗号的,相加可以修改scanf

#include<stdio.h>
#include<math.h>

int main()
{
double sum=0, min, max, x;
int i;

scanf("%lf", &x);
min = max = sum = x;

for(i=1; i<5; i++)
{
scanf("%lf", &x);
sum += x;

if(min > x)min = x;
if(max < x)max = x;
}

printf("%.2f\n", (sum-min-max) / 3);

return 0;
}
chenfenggang99
2014-05-18 · TA获得超过1850个赞
知道大有可为答主
回答量:1746
采纳率:75%
帮助的人:1723万
展开全部
1) 只能说明 小数部分是0 ,,,,不过应该满足你的题意

(2) 编写一个程序实现如下功能,即:求y2+x2的运算结果,x,y为整数,由键盘输入
#include<math.h>
#include<stdio.h>
int function(int x,int y){
return pow(1.0*x,2)+pow(1.0*y,2);
}
int main(){
int x,y;
scanf("%d%d",&x,&y);
printf("%d",function(x,y));
}

(3) 编写程序,根据上网时间x计算上网费用y,计算的方法如下:
•当x< 10小时,上网费用: y=20元套餐费
•当10<=x<50小时,上网费用:套餐费加超过10小时部分每小时3元。
•当x>=50小时,上网费用:套餐费加超过10小时部分每小时2.5元
•同时为了鼓励多上网,每月收费最多不超过170元。
总之逻辑呢就是
#include<stdio.h>
int xxx(int x) {
if (x<10) {y=20;}
else if(x>=10 && x<50) {y=3*(x-10);}
else if(x>=50) {y=2.5*(x-10);}
if (x>170) {y=170;}

return y;
}
int main(){
int y;
scanf("%d",&y);
printf("%d"xxx( y));
}

求C语言版。。

4.编写程序,从键盘输入x值,根据下列分段函数式计算出y的值。
逻辑是这样的:
#include<stdio.h>
int xxx(int x) {
if (x<=-1){y=x-1;}
elseif(x>-1 && x<=2){y=2*x;}
elseif(x<=2 && x>=10){y=x*x+2*x;}
elseif(x>10){y=-1;}
return y;
}
int main(){
int y;
scanf("%d",&y);
printf("%d"xxx( y));
}

5.编写程序,从键盘输入5个实数,去掉一个最大值,去掉一个最小值,求其他三个数的平均值(输出时要求保留一位小数.)
p如输入2.1,3.5,4.3,1.9,3.7。p则输出3.5+2.1+3.7的平均值:3.1。
#include<stdio.h>
int main(){
float ss[5];
float max=-1000,min=10000,sum=0;
for(int i=0;i<5;i++)
{ scanf("%f",&ss[i]);
sum+=ss[i];
if(ss[i]>max)
max=ss[i];
if(ss[i]<min)
min=ss[i];
}
printf("%.1f",(sum-max-min)/3);
}

希望能帮到你。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
苑永修千月
2019-06-20 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:25%
帮助的人:945万
展开全部
25题是这样的
由于是do
while语句,当i=2时执行该语句,n++为1,当i=3时,由于取余等于0,则跳出该循环,n还是为1,没有变,当i=4时和i=2时一样,n++变为2,由于是do
while语句i等与5时继续循环下去,n++变为3,然后遇到whlie(!i
)不合乎条件,结束该循环。又遇到n++,则n就变为4了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2014-05-18 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6384万
展开全部
(1)不行。要if(ch>='0' && ch<='9')才行。
(2)不行。要double function (double x,double y){return pow(x,2)+pow(y,2);}才行。
(3)不行。要double functionxxx(int x) {double y;if (x<10) {y=20;}else if(x>=10 && x<50) {y=3*(x-10);}else if(x>=50) {y=2.5*(x-10);}if (y>170) {y=170;}return y;}才行。
(4)不行。要double functionxxx(int x){int y;if (x<=-1){y=x-1;}else if(x>-1 && x<2){y=2*x;}else if(x>=2 && x<=10){y=x*x+2*x;}else if(x>10){y=-1;}return y;}才行。注:x<=2 && x>=10不会成立,有改动。
(5)
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
void main(void){
double x,max,min,sum;
int i;
scanf("%lf",&x);
for(sum=max=min=x,i=1;i<5;i++){
scanf("%lf",&x);
sum+=x;
if(x>max) max=x;
if(x<min) min=x;
}
printf("The result is %.1f\n",(sum-max-min)/3.0);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daysergeant
2014-05-18
知道答主
回答量:4
采纳率:0%
帮助的人:5325
展开全部
 顾地博导二叠纪与世隔绝
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式