用c语言编写程序 输入一个正整数n,求1到n的数中1出现的个数

用函数调用,那如果输入的是一个大于100或1000的数呢?

/*用c语言编写程序 输入一个正整数n,求1到n的数中1出现的个数*/
#include"stdio.h"
int count(int n)
{
int i,j,c=0;
for(i=1;i<=n;i++)
{
j=i;
while(j!=0)
{
if(i%10==1) /*判断位数中是否有1*/
{
c++;

}
j=j/10; /*让数除以十让他原来的高位变为低位,即原来的十位变成个位*/
}
}
return c;
}
main()
{
int c,n;
printf("input n:\n");
scanf("%d",&n);
c=count(n);
printf("%d\n",c);

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-09-30
不知道这个是不是你想要的
#include"stdio.h"
#include"string.h"
int
count(int
num)
{
int
count=0;
while(num>0)
{
if(num%10==1)//判断个位
count++;
num/=10;//去掉个位,得到下一个数
}
return
count;
}
void
main()
{
int
num,i,sum=1;
printf("Please
insert
the
value
of
num:");
scanf("%d",&num);
for(i=2;i<=num;i++)
sum+=count(i);//循环得到每一个数字中字符'1'的个数
printf("the
tatol
'1'
is:%d\n",sum);
}
第2个回答  2019-07-20
#include
int
main(void)
{
int
n;
float
s=0.0;
printf("请输入需要计算数列前多少项:");
while(!scanf("%d",&n)){
printf("输入错误!请重新输入:");
fflush(stdin);
}
for(int
i=0;i
评论
0
0
加载更多
第3个回答  2008-12-13
不知道这个是不是你想要的
#include"stdio.h"
#include"string.h"

int count(int num)
{
int count=0;
while(num>0)
{
if(num%10==1)//判断个位
count++;
num/=10;//去掉个位,得到下一个数
}
return count;
}

void main()
{
int num,i,sum=1;
printf("Please insert the value of num:");
scanf("%d",&num);
for(i=2;i<=num;i++)
sum+=count(i);//循环得到每一个数字中字符'1'的个数
printf("the tatol '1' is:%d\n",sum);
}
第4个回答  2019-06-11
/*用c语言编写程序
输入一个正整数n,求1到n的数中1出现的个数*/
#include"stdio.h"
int
count(int
n)
{
int
i,j,c=0;
for(i=1;i<=n;i++)
{
j=i;
while(j!=0)
{
if(i%10==1)
/*判断位数中是否有1*/
{
c++;
}
j=j/10;
/*让数除以十让他原来的高位变为低位,即原来的十位变成个位*/
}
}
return
c;
}
main()
{
int
c,n;
printf("input
n:\n");
scanf("%d",&n);
c=count(n);
printf("%d\n",c);
}
相似回答