求这道题用C语言循环语句怎么写?

 我来答
自我编程
2020-04-23 · 科技优质答主
自我编程
采纳数:1481 获赞数:4282

向TA提问 私信TA
展开全部

两种方法:

一、字符串方法:用函数itoa把1到n的数字转换成字符串。然后用遍历字符串元素的方法取每个元素和x数字对应的字符比较,并累加结果。

二、整数按位比较:用求余再整除法,取出整数每一位数字和x比较,并累加结果。

下面代码用方法二写的:

#include <stdio.h>

int getCnt(int num,int x);

int main()

{

    int i,n,x,cnt=0;

    printf("计算1到n的所有整数中,数字x(0<=x<=9),共出现了多少次?\n");

    printf("请输入数字n和数字x:");

    scanf("%d%d",&n,&x);

    for(i=1;i<=n;i++)

        printf("%d ",i),cnt+=getCnt(i,x);

    printf("\n共出现次数:%d\n",cnt);

    return 0;

}

int getCnt(int num,int x)

{

    int cnt=0;

    while(num/10>0)

    {

        if(num%10==x) cnt++;

        num=num/10;

    }

    if(num==x) cnt++;

    return cnt;

}

pig05121
2020-04-23 · TA获得超过599个赞
知道小有建树答主
回答量:234
采纳率:50%
帮助的人:134万
展开全部
这个其实主要并不在于怎么设计循环,而是在于怎么判断某个变量data是否包含某个数字n。
我的算法是:
int check(int data,int n)
{
int count = 0;
while(data!=0){
if ((data%10)==n) count++;
data /= 10;}
return count;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
么诶节奏
2020-04-23 · TA获得超过624个赞
知道小有建树答主
回答量:769
采纳率:100%
帮助的人:53.1万
展开全部

详细代码就不贴出来了,自己照着打一遍就可以了

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2020-04-23
展开全部

#include<stdio.h>

int f(int n, int x, int r) {

  if (n == 0)

    return r;

  else

    return f(n / 10, x, r + (n % 10 == x));

}

int F(int n, int x, int count) {

  if (n == 0)

    return count;

  else

    return F(n - 1, x, count + f(n, x, 0));

}

int main() {

  int n, x;

  scanf("%d%d", &n, &x);

  printf("%d", F(n, x, 0));

  return 0;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
庭树QQ
2020-04-23
知道答主
回答量:11
采纳率:0%
帮助的人:6335
展开全部
#include <stdio.h>
int main()
{
int n,x,i,j,count;
scanf("%d %d",&n,&x);
i=1;
while(i<=n)
{
j=i;
while(j>0)
{
if(j%10==x)
{
count++;
}
j/=10;
}
i++;

}
printf("%d",count);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式