蓉杠学习网

c语言疑问号,c语言中问号语句

大家好,今天小编关注到一个比较意思的话题,就是关于c语言疑问号的问题,于是小编就整理了2个相关介绍c语言疑问号的解答,让我们一起看看吧。

  1. 如何用c语言判断一个整数是几位?
  2. c语言实现能否保存数据?

如何用c语言判断一个整数是几位?

#include<stdio.h>

int main()

c语言疑问号,c语言中问号语句div>
图片来源网络,侵删)

{int i=0;

long int n;

printf("输入=");

c语言疑问号,c语言中问号语句
(图片来源网络,侵删)

scanf("%d",&n);

while(n!=0)

{

c语言疑问号,c语言中问号语句
(图片来源网络,侵删)

n=n/10;

i++;

看了这么循环整除的办法……既然你问的是一个比较基础的问题,那么我就给一个更快速算法,int类型可以表示2的32次方,大概十进制的9次方,相对的,long long用64位的下去存可以表示10的19次方左右,从第一位开始整除最多算19次,最少算一次(个位的情况),但如果使用二分答案,由于这个数可以被存储,***设它小于10的19次方,那么存在的可能有19种,第一次枚举10的19次方和0之间的中间值19的9次方,与他比较大小然后继续以10的次方为单位枚举区间中段的值,可以计算得,必定在log2(19)即5次以内找出位数,而普通整除只有在数字大小小于10的5次方以内才会优于该算法,具体情况具体考虑,取决于你的数据范围,纯手打,如果有写错的欢迎指正。

我是鹏鸟,热衷回答有关C语言学习疑问和家庭视听***领域的问题。本回答为鹏鸟原创,欢迎转发哦!

这道题需要用到一个很简单数学知识。给出一个整数,比如46128,用46128除以10,商是4612,余是8,也就是从46128中剥离出了一个数字8,剩下的4612再除以10,以此类推,最后依次剥离出了8,2,1,6,4,同时此时的商是0。此时,只要数下剥离出了几个数字,那么就是这个整数有几位。

所以啊,编程跟数学是分不开的。数学为编程提供了算法,编程来实现这个算法,进而解决了一个问题。

下面我给出一段代码,来演示下如何运用上面的这个简单的数学知识:

代码中让你随便输入一个数,保存变量number中。还使用了一个计数器:countor,这个计数器就是用来保存整数的几位的。在while循环中,每剥离一个数字出来,计数器就增加1,最后全部剥离成功后,计数器就是这个整数的位数。

运行结果如下

我这个代码只是解释了上面的那个简单的数学知识如何运用,代码还有地方需要完善,比如如果用户输入的不是一个整数怎么办?或者用户输入的整数很大,以至于超出了unsigned int的范围,又该怎么办等等。

这个问题很好解决。(纯手机打字,还请谅解)

首先,明白整数在内存中以二进制呈现,比如10

表示成二进制就是1010

那么要计算10有多少位?怎么算?很简单,直接来:

10除以10等于1,1除以10等于0,所以有2位。

(用电脑给你完善一下,希望满意)

具体代码:

一个整数,每次除以10,这个数就会少一位,所以思路就是这样的,不断的将这个数除以10,直到该数变为0为止。

认认真真回答。希望看到的小伙伴能随手给个赞,你的赞赏是一种支持

循环除以10就好了,中间加个计算变量,判断什么时候小于10就行了(楼上有具体实现)。自己编一个字串转数字的全套系列功能函数,你就明白了,其实不复杂。真正复杂的函数是stdio、string两个文件的各个函数实现,即字串的处理(其他人不知道,个人认为要想完整复制出这两个头文件的函数实现,相当困难,几乎等同于,将整个C吃透,单单printf函数的实现就能把人搞疯)。

c语言实现能否保存数据?

没有学文件操作吧?

程序运行中打开文件,程序退出时保存文件。

FILE *fp;

fp=fopen("filename","a+");

fprintf(fp,"%s",s);

fclose(fp);

给你目前比较流行的解决方案。

一.二进制数据文件

直接将你存储数据的[_a***_]以二进制的方式写入文件,下次可以原封不动的读入但原有数据结构中,缺点一是结构体包含指针变量时需要特殊处理,还原时也要特别小心这些数据指针,缺点二是不易跨平台不同平台编译器对数据结构的内存对齐方式不一致,解决办法是写入时***用一字节对齐。

二.ini文件

这种是常见的配置文件格式,格式如下

[group]

key=value

windows有现成的解析和写入函数,可方便读写,缺点是并不适合存储复杂数据。

三.xml文件

xml比ini复杂,可以存入任何数据,每个标签可以有属性读取和写入都很方便,但面对复杂的数据关系,也力不从心。

到此,以上就是小编对于c语言疑问号的问题就介绍到这了,希望介绍关于c语言疑问号的2点解答对大家有用。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/26918.html

分享:
扫描分享到社交APP