c 计算连续数字中0到9的个数

嘿嘿,你的总结很全面,不过感觉有点像艺术。
我们要换个说法吗?
上周有客户问我如何用C语言计算数字中0到9 出现的频率。
事实上,理解“连续数”的方式有很多种。

如果数字以字符串的形式给出,如“1 2 3 4 5 09 8 7 6 ”,操作就非常简单。
打开一个大小为 X 的整数数组 size[1 0],并将所有内容初始化为 0。
然后在遇到 '0' 时迭代这个字符串 string[0]++;当 i5 ' 发生​​时,count[5 ]++;这样,最后的计数就会按照每个数字出现的次数顺序出现。
这种方法非常准确,时间复杂度为O(n)。

如果用户直接输入数字,例如在键盘上打字,则必须添加输入终止符。
例如,用户按-1 退出输入。
他还用它作为计数[1 0]。
但请注意,scanf 可能与读取数字有关,尤其是当用户输入字母或其他内容时。
上次走进陷阱的时候,我忘记打个短电话,计划就泡汤了。
所以最好使用fgets读取该行,然后将strtol转换为数字,这样更安全。

最复杂的就是统计每个数字在一定范围内出现的次数,比如1 到1 000。
我们需要对数字中的数字进行打散。
例如,使用 while 循环 x=1 ; x<=1 000; x++,然后 do-while(num=x%1 0; num; num=num/1 0) 循环对每个部分进行计数。
该算法的复杂度时间为O(平均数n)。
对于大型统计数据不是很有效,但绝对准确。

如果数组中有数字,如int arr[] = {1 2 , 4 5 , 7 8 , 3 },则双循环。
外层遍历arr,使用内层循环digit = arr[i]%1 0;手指数字/=1 0;列出每个部分。
注意,首先要判断arr[i]是否为正数。

查看使用哪种方法取决于输入数据的格式。
如果是字符串,则使用第一种类型,如果是用户输入,则使用第二种类型,如果是统计数据,则使用第三种类型,如果是数组元素,则使用第四种类型。
不管怎样,在处理这类问题时,我通常会先询问信息来源,然后再采取解决方案。

c语言或c 怎么统计不重复整数的个数

那天我在酒吧,坐在我旁边的人正在写代码。
屏幕上闪烁着C语言代码,我看到了。
大小为 1 02 4 的数组定义了 a。
该程序读取 n 个数字,如果 n 大于 1 02 4 ,则将其转换为 1 02 4 ,然后读取一个数字并将其存储在数组中。
小弟用变量b来标识是否重复。
如果当前数字与前一个数字相同,则将 b 设置为 1 并退出内循环。
最后,计算唯一的数字并打印它们。
他的手指搁在键盘上,一边打字,一边思考着b=0的判断。
等等,内循环是i-1 ,是不是少了最后一个数字?我喝了咖啡,继续看书。

统计给定的n个数中,负数、零和正数的个数 用C语言

2 02 2 年,我参加了一个编程竞赛。
在本主题中,您必须用 C 语言编写一个程序来读取二维数组并对该数组进行统计。

当我第一次看到这个问题时,我有点困惑,但我还是决定尝试一下。
首先,我们定义了一个名为 Row 的宏。
它的值为 5 0,表示数组中的最大行数。

接下来,我们创建了一个定义两个变量 i 和 j 的 main 函数。
i 用于记录当前正在处理的行数,j 作为临时变量。

接下来,我们声明了一个最大行数和 1 01 列的二维数组 array。

接下来,我们创建了一个读取输入数组的 do-while 循环。
循环首先打印提示信息“inputnumbers:”,然后使用scanf函数读取每行的第一个元素(该行中数字的个数)。

然后我们使用 for 循环读取每行中的其他元素。
我们将使用 j 作为临时变量,从 1 开始,向上移动到当前行数加 1
输入整行后,将 i 加 1 表示已处理下一行。
当该行的第一个元素读取为 0 时,循环结束。

接下来,我们创建了一个打印结果的 for 循环。
在此循环中,我们定义了三个变量:a、b 和 c。
它们分别用于计算负数、零和正数的数量。

内部for循环使用k作为索引来迭代每行的元素。
如果元素小于0,则a加1 如果元素等于0,则b加1 如果元素大于0,则c加1
最后,打印a、b、c的值,并以换行符分隔。

我写完代码后,没有立即测试就提交了。
也许我的代码有点极端,我没有考虑到输入数组中的行数可以超过 5 0。
因此,这个程序在处理超过 5 0 行的输入时可能会出现问题。