请问如何用c语言统计一个数据中0的个数

来源:百度知道 编辑:UC知道 时间:2024/05/30 10:59:38
c语言编程
整数

看了前两位的回答,我不禁要问一句,假若我输入的数据是一个很长的数,如605498076501006507600854605106050798500463160549870601651065004465351
恐怕用长整形也表示不了吧?

要解决楼主的问题,得先有个前提,就是数据究竟最大会有多大。

这里姑且假设最长位数不超过100位,则可以编制以下程序:
#include <stdio.h>
#define N 100

void main()
{
char ch[N];
int i,count=0;

printf("Input date\(shorter than %d\):",N);
gets(ch);

for(i=0;ch[i]!='\0';i++)
if(ch[i]=='0') count++;

printf("The number of 0 is: %d.",count);
}

程序已经经过调试了。
其中,我们可以修改N的值,从而来适应不同的数据长度要求。
该程序优缺点:
1、程序功能上包含了上面两位仁兄的程序
2、程序灵活,只需小小改动即可满足不同要求。
3、当数据的位数不大,能够为C语言中的长整型数据表达时,该程序相对于2楼的程序来说,占用的内存就大了。不过在当今内存大的历史背景这也就不算是什么问题了。

是一个整数中的么?
下面的是输入一个整数的情况,不知道你要输入的是什么,说明白些吧
#include<stdio.h>
main()
{
int a,m,count=0;
scanf("%d",&a);
while(a!=0)
{
m=a%10;
if