C小数点从键盘中输入一个float数字不用数组,不用字符串,求其整数的有效位数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C小数点从键盘中输入一个float数字不用数组,不用字符串,求其整数的有效位数相关的知识,希望对你有一定的参考价值。

从键盘中输入一个数字(可以包含小数点,其位数在60位以下,求其整数的有效位数,如输入
0123.456,返回值为整数有效位数为3)
1) 输入数据为浮点型,不用数组,不用字符串,只有变量的算术运算实现此功能。

参考技术A #include <stdio.h>
void main()

int Bits_num=0;
float num;
int temp;
scanf("%f",&num);
temp=int(num);
while(1)

Bits_num++;
temp/=10;
if(temp==0)

break;



printf("num=%f,有%d位有效数字.\n",num,Bits_num);
追问

那可以得到小数点的位置不,也就是小数点后的第一位。。不用字符操作

那可以得到小数点的位置不,也就是小数点后的第一位。。不用字符操作

追答

按说是可以的,可是我测试,编译系统会自动给补齐或者截断到8位。

追问

开始就乘10取再强转,取最后2位,给我分

本回答被提问者采纳

C语言如何在键盘中输入一个数字字符串并进行排序

比如定义一个字符串char[100],在键盘中输入了457268447668
输出就是887766654442

楼主你好!

根据你的要求,我使用冒泡排序法,帮写个了程序,代码及运行结果如下!如果有不正确之处,请广大好手指正!谢谢!

#include<stdio.h>#include<string.h>

int main()

 char a[100];

 int i,j;

 printf("请输入字符串:\\n");

 scanf("%s",a);

 for(i=0;i<strlen(a);i++)

 for(j=0;j<strlen(a)-1-i;j++)

  char temp;

  if(a[j]<=a[j+1])

   temp=a[j];

   a[j]=a[j+1];

   a[j+1]=temp;

 

 

 printf("排序后的字符串:\\n%s\\n",a);

 return 0;

 

 

希望我的回答对你有帮助!

追问

朋友,谢谢你的答案,我还想追问一下,假如我还想在这个字符串的后面再输入一个整型数,怎么样保证这个数字不在这个字符串内呢?
比如:定义一个字符串char[100];int n;
在键盘中输入了457268447668 3
然后再排序那个数字字符串。

追答

如果可以的话,加我qq(56313492)吧,一起讨论吧!这感觉不是一两句可以说清楚的!

参考技术A #include<cstdio>
#include<cstring>
#include<algorithm>

using namespace std;

#define size 10010

int num[size],len;
char ch[size];

int main()
scanf("%s",ch);
len=strlen(ch);
for(int i=0;i<len;i++)
num[i]=ch[i]-'0';
sort(num,num+len);    //系统快排,需要用到算法库(algorithm)
for(int i=0;i<len;i++)
printf("%d",num[i]);
return 0;

我感觉你是这个意思,输入一串数字,将数字从小到大排序。

本回答被提问者采纳
参考技术B

1.把字符串当成一个字符数组,然后对该数组进行大小排序即可。
2.例程:

#include<stdio.h>
#include<string.h>
char s[1000];
int i,j,k,temp;
int main()
   gets(s);  //得到一个字符串,储存到s变量中
   k=strlen(s);  //得到该数组的长度,也就是字符数量
   for(i=0;i<k;i++) 
      for(j=i+1;j<k;j++) if(s[i]<s[j])  //使用冒泡排序整理字符串
         temp=s[i];
         s[i]=s[j];
         s[j]=temp;
      
   printf(s); //输出字符数组排序后的结果
   return 0;

以上是关于C小数点从键盘中输入一个float数字不用数组,不用字符串,求其整数的有效位数的主要内容,如果未能解决你的问题,请参考以下文章

C++编程,从键盘输入两个数组,求两个数组的交集并输出。

利用JAVA编写程序,用一维数组保存20个学生的某门课程的成绩,计算平均成绩,并输出。

给定一个数组,数组内容随机,键盘输入一个数据(数字和单字符),查询是不是存在此数据 c语言代码怎么写?

C语言中如何将double型数据转换为数组?

c语言 从键盘上任意输入一个字符(字母大小写,数字,控制字符和其他字符)判断所属字符类型,只发

c语言从键盘输入一个整数,然后输出这个数字的平方和立方?