C语言程序设计(165-8)

C语言程序设计(165-8),第1张

long fun(char s)

{long n;int sign;

for( ;isspace(s);s++) //如果s是空格则s++

sign=(s=='-')-1:1;

if(s=='+'||s=='-')

s++;

for(n=0;isdigit(s);s++) //如果s是数字则s++

n=10n+(s-'0');

return(signn);

}

1 函数返回值是6534

2 isspace()和isdigit()都是在头文件ctypeh中定义的

它们在这里的作用是分别是判断s是否为空格和s是否为数字具体的函数实现可以查考库文件ctypec

另外

for( ;isspace(s);s++)

sign=(s=='-')-1:1;

这个sign的值在这里永远是1,如果是要输出负数的话:

例如:要让“□□□□□-6534abc”输出的是-6534则函数应该改为:

for( ;isspace(s);s++)

; //这里什么都不做,只是判断是空格就后移一位

if(s=='+'||s=='-') {

sign=(s=='-')-1:1;

s++;

}

不知道你题目中的塔是柱状塔还是锥状塔,对于柱状塔,源代码如下。

#include "stdioh"

#include "mathh"

double Dist(double x1, double y1, double x2, double y2)

{

return sqrt((x1 - x2) (x1 - x2) + (y1 - y2) ( y1 - y2));

}

double GetHigh(double x, double y),

{

int signx = 1, signy = 1;

if(x < 0) signx = -1; /先求点(x, y)所在象限/

if(y < 0) signy = -1;

if(Dist(x, y, signx 10, signy 10) <= 20) /求点(x, y)与最近的塔心的距离/

return 25;

else 0;

}

void main( )

{

double x, y;

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

printf("high = %lf", GetHigh(x, y));

}

如果是锥状塔,将求高度的函数代码修改如下,其余的代码同上:

double GetHigh(double x, double y)

{

int signx = 1, signy = 1;

double dist;

if(x < 0) signx = -1; /先求点(x, y)所在象限/

if(y < 0) signy = -1;

dist = Dist(x, y, signx 10, signy 10); /求点(x, y)与最近的塔心的距离/

if(dist <= 20)

return 25 (20 - dist) / 20;

else 0;

}

#include <stdioh>

long s2i(char s);

int main(void) 

{

printf("%ld\n",s2i("-123456"));

return 0;

}

long s2i(char s)

{

long n=0,sign=1;

while(s)

{

switch(s)

{

case '+':sign=1;break;

case '-':sign=-1;break;

default:n=n10+s-'0';break;

}

s++;

}

return signn;

}

以上就是关于C语言程序设计(165-8)全部的内容,包括:C语言程序设计(165-8)、C语言的分支结构程序设计、使用c语言程序设计,编写一个函数,用于将一个数值型字符串转化为整型数值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10109412.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存