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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用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);

参考技术A 不知道这个是不是你想要的
#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);
参考技术B #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
加载更多
参考技术C 不知道这个是不是你想要的
#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);
参考技术D /*用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);

怎样用C语言判断一个整数中有没有重复的数

用C语言判断一个整数中有没有重复的数的具体操作步骤如下:

1、编写头函数:#include <stdio.h>。

2、编写中间的条件:

int main(void)

int n,i;

int num[10] = 0;

scanf("%d", &n);

do

num[n%10]++;

     while((n = n/10) != 0 );


3、最后编写条件与结果即可:

for(i = 0; i < 10; i++)

if(num[i] >= 2)

printf("repeat\\n");

break;

if(i == 10)

printf("no repeat\\n");

return 0;

参考技术A

#include<stdio.h>

int main()

int x,x1,t,a[10]=0;

 scanf("%d",&x);

 x1=x;

 for(;x;x/=10)

 t=x%10;

  if(a[t])printf("%d中%d重复了\\n",x1,t); return 0;

    else a[t]=1;

 

 printf("%d中没有重复的数字\\n",x1);

 return 0;

参考技术B 逐位读取,存储状态

以上是关于用c语言编写程序 输入一个正整数n,求1到n的数中1出现的个数的主要内容,如果未能解决你的问题,请参考以下文章

求C语言程序,从1~2012中取k个数,取出的数中任意两个数之差不能为5或8,求k的最大值

用c语言怎样编写n个数以内的完全数的程序

c语言问题 输入a、b两个两位正整数,将它们合并形成一个新的整数放在c

编写一个程序,输入一个正整数,计算并显示该数的各位数字之和

C语言求助,《求m和n之间的所有素数》

C语言 编写一个程序,输入一个正整数,求出它是几位数。