问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么样可以在C语言中实现下列要求

发布网友 发布时间:2022-08-24 21:03

我来回答

4个回答

热心网友 时间:2024-11-23 03:36

#include<stdio.h>
#include<string.h>
void main()
{
char chToNum[51],*pCh=chToNum,Nodigital='\0';
//Nodigital如果一个数字字符都没有输入,它就为'\0'。为'\0'就表示没有数字
//Nodigital为'y'或其他ASCII不为0的字符都表示,输入了一个或多个数字
double dnum=0.0;
gets(chToNum);
for ( ; *pCh; pCh++)
if (*pCh>=48 && *pCh<=57)//0到9的ASCII48~57,,或者*pCh>='0' && *pCh<='9'
{
dnum*=10; //让dnum所有位向左移动一个位置,右边补零。
dnum+=(double)(*pCh-48); //0的ASCII为48。字符'4'-48=52-48=4,其他同理。
Nodigital='y';
}
if (Nodigital) //本来直接写的if ((int)dnum),但是如果dnum为0.0,那么就有漏洞了。
printf("%.4f\n",dnum);
else
printf("the digital string is empty!\n");
}
//VC++6.0已运行通过。
/*
如果不熟悉指针,那么for ()........这一段可以替换为
当然,要在double dnum=0.0下一行,声明int i;上面没有这个声明。
for (i=0 ; chToNum[i];i++)
if (chToNum[i]>=48 && chToNum[i]<=57)//
{
dnum*=10; //让dnum所有位向左移动一个位置,右边补零。
dnum+=(double)(chToNum[i]-48);
Nodigital='y';
}

*/

热心网友 时间:2024-11-23 03:37

是将'1'转成1.0输出
还是 将'1'转换成49.0输出?
如果是第一种 就:
#include<stdio.h>
int main()
{
char str1[51],str2[51];
int i,n;
double a;
printf("请输入长度不超过50的字符串:\n");
gets(str1);
for(i=0,n=0;str1[i]!=0;i++)
{
if(48<=str[i]&&str[i]<=57)
{
str2[n]=str1[i];
n=n+1;
}
}
if(n==0)
printf("the digital string is empty!\n");
else
for(i=0;i<=n;i++)
printf("%.4f\n",((double)(str2[i]-48)));
return 0;
}
如果是第二种 就:
#include<stdio.h>
int main()
{
char str1[51],str2[51];
int i,n;
printf("请输入长度不超过50的字符串:\n");
gets(str1);
for(i=0,n=0;str1[i]!=0;i++)
{
if(48<=str[i]&&str[i]<=57)
{
str2[n]=str1[i];
n=n+1;
}
}
if(n==0)
printf("the digital string is empty!\n");
else
for(i=0;i<=n;i++)
printf("%.4f\n",(double)str2[i]);
return 0;
}

我没调试 也不知道行不行 = =追问最后他给结果应该是只输出一个双浮点型数值,不管是有多少个数字一律作为该数值中的一位,输出。比如输入“!1 @2 #3 $4”,最后输出“1234.0000” 请问如何实现?

追答#include
#include
int main()
{
char str1[51],str2[51];
int i,n;
long double sum
printf("请输入长度不超过50的字符串:\n");
gets(str1);
for(i=0,n=0;str1[i]!=0;i++)
{
if(48<=str[i]&&str[i]<=57)
{
str2[n]=str1[i];
n=n+1;
}
}
if(n==0)
printf("the digital string is empty!\n");
else
{
long double a[n];
for(i=0;i<n;i++)
a[i]=str2[i]*pow(10,(n-i-1));
for(i=0;i<n;i++)
sum+=a[i];
printf("%lf",sum);
}
return 0;
}
其实long double有效数字为19……所以如果你输入50位数字的话……= =||||
同样是没调试的……不知道行不行……

热心网友 时间:2024-11-23 03:37

#include <stdio.h>
#include <ctype.h>
void main()
{
char c;
int i=0;
double n=0;
while(c!='\n')
{
c=getchar();
if(isdigit(c))//判断是否是数字字符
n=n*10+c-'0';
}
if(!i)
printf("the digital string is empty!\n");
else
printf("%.4lf\n",n);
}

热心网友 时间:2024-11-23 03:38

shenmehaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果手机微信怎么换漂亮字体(苹果手机微信怎么换行输入) 有什么好用的app转换字体 手写转文字的软件 erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 有些被动语态搞不懂??请各位帮帮忙 如何把握八个&quot;坚持不忘初心,继续前进 不忘初心方得始终 3.0t和2.0t开起来的区别 奇瑞鲨价上新季 瑞虎8限时0元升舱 3.0t和2.0t开起来的区别,2.0t和3.0t有什么区别 期租业务增值税税率 融资租赁合同的缴纳标准是什么 到店体验比亚迪汉 强悍性能令人折服 购车零优惠但贷款可贷60期 我前几天买车办了张牡丹分期卡,钱已经还清,请问这张卡能当信用卡用 省呗贷款可靠吗 如何在恋爱中掌握主动权 中华人民共和国第十二届全国人民代表大会小板邮票多少钱 第三套生肖邮票包含大板,小板,本票售价多少 季节过敏性鼻炎患者在春天吃什么食物比较好?该怎么制作? 过敏性鼻炎吃什么好 推荐2款食疗方 ...就是想问一下,关于自主择业贷款一事,民政上…… 我是潍坊2010年退伍军人,当初选择自主择业,请问现在有没有享受国家无... 退伍军人自主择业证有什么用,可以贷款吗 病猪肉怎么分辨 3.0T 和2.0T的区别 上证指数在以往年有突破过6千点吗 上证指数什么时候可以再回到6000点以上?? 2.0t和3.0t有什么区别;2.0t和2.5l哪个省油 ...笔记本电脑找不到一键恢复按钮无法恢复系统怎么办? 2.0t和3.0t差别 猪喉管怎么做好吃 猪喉管煲南北杏仁咳桃汤 请问怎么保存人的头骨?手术后的头骨。 颅骨怎么清洗消毒 我家里人因为做手术拿下一块颅骨来,医生让给保存起来... 我妈妈外伤引起脑出血,作了去骨瓣手术,骨头怎样保存 颅骨修补手术后。修补上的颅骨一般能保存多长时间 脑出血手术是取出了颅骨,术后的颅骨是否安装进去?安装是有什么风险... #endif 是什么意思? 请问一下,按键精灵中的Endif是什么命令?怎么用啊.最好举个例子_百度知... 高分悬赏 按键精灵脚本代码 多条件同时判断 求解 保时捷迈卡2.0和3.0有什么区别 COS操作系统的重大意义 COS操作系统的介绍 为什么中科院的人那么出色,不能造出一个使用的CPU或者操作系统?