一道c语言的简单题

Akichillng 2016-01-26 03:35:34
题目意思是要输出第n个不含l这个数字的数,比如n是10,l是1的时候
十个数应该依次是 2,3,4,5,6,7,8,9,20,22,所以输出数就应该是22
我写的是这样的,但是是错误的……麻烦帮我找找错误改正一下
#include<stdio.h>
int main()
{
int n,l,i,y,count=0,a;
while(scanf("%d%d",&n,&l)!=EOF)
{
for(i=1;i<=1000000;i++)
{
int flag=0;
a=i;
while(a)
{
y=a%10;
a/=10;
if(y==l)
flag=1;
}
if(flag==0)
{
count++;
}
if(count==n)
break;
}
printf("%d\n",i);
}
return 0;
}
...全文
138 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-01-26
  • 打赏
  • 举报
回复
仅供参考:
//输出第n个不含l这个数字的数,比如n是10,l是1的时候
//十个数应该依次是 2,3,4,5,6,7,8,9,20,22,所以输出数就应该是22
#include <stdio.h>
#include <string.h>
int n,l,i,k;
char s[30];
int main() {
    scanf("%d%d",&n,&l);
    if (n<1 || n>100000000 || l<0 || l>9) return 1;
    k=1;
    for (i=1;i<200000000;i++) {
        sprintf(s,"%d",i);
        if (NULL==strchr(s,'0'+l)) {
            if (k==n) {
                printf("%d\n",i);
                break;
            }
            k++;
        }
    }
    return 0;
}
Akichillng 2016-01-26
  • 打赏
  • 举报
回复
引用 1 楼 lilianjie001 的回复:
#include <iostream>
#include<stdio.h>
int main()
{
    int n,l,i,y,count=0,a;   
	scanf("%d%d",&n,&l);
	{
        for(i=1;i<=1000000;i++)
		{
			int flag=0;
			a=i;
			while(a)
			{
				y=a%10;
				a/=10;
				if(y==l)
					flag=1;
			}
			if(flag==0)
			{
				printf("%d\n",i);
				count++;
			}
			if(count==n)
				break;
		}
		
	}
    return 0;
}
不是要输出所有的数,只需要输出第n个数,而且要多组数据测试啊_(:з」∠)_
lilianjie001 2016-01-26
  • 打赏
  • 举报
回复
#include <iostream>
#include<stdio.h>
int main()
{
    int n,l,i,y,count=0,a;   
	scanf("%d%d",&n,&l);
	{
        for(i=1;i<=1000000;i++)
		{
			int flag=0;
			a=i;
			while(a)
			{
				y=a%10;
				a/=10;
				if(y==l)
					flag=1;
			}
			if(flag==0)
			{
				printf("%d\n",i);
				count++;
			}
			if(count==n)
				break;
		}
		
	}
    return 0;
}

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧