用C语言写出数字1到N中数位上不包含数字2的数字总共有几个?

如题所述

第1个回答  2019-12-26
#include<stdio.h>
int calc(int n){
int temp,count=0;
while(n!=0){
temp=n%10;
if(temp==2){
count++;
}
n/=10;
}
if(count>0){
return 1;
}else{
return 0;
}
}
void main(){
int num,i,count=0;
printf("请输入一个整数:");
scanf("%d",&num);
while(num<=1){
printf("必须输入一个大于1的数!\n\n");
printf("请输入一个整数:");
scanf("%d",&num);
}
for(i=1;i<=num;i++){
if(calc(i)==0){
count++;
}
}
printf("1到%d之间不含数字2的数有:%d个!\n",num,count);
}
第2个回答  2019-11-27
int func(int n)
{
int i, total , d, c ;

total = 0 ;

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

{
d = i ;

c = 0 ;

while( d )

{
c = d % 10 ;

d = d / 10 ;

if( c == 2 )

break ;

}

if( c != 2 )

total ++ ;

}
return total ;

}本回答被网友采纳

c语言,找出1-100之间个位数字不是2,3,4,7,并且不能被3整除的整数...
不能被3整除的整数有:3 × i + 1和3 × i + 2,个位数不是2、3、4、7。int i = 0;int sum = 0; \/* 保存求和的值 *\/ while ( 3 * i + 2 < 100 ) \/* 限定数字小于100 *\/ { int tmp = (3 * i + 1) % 10; \/* 取出个位数 *\/ if (tmp != 2 || ...

用c语言编写程序 输入一个正整数n,求1到n的数中1出现的个数
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)...

C语言 计算1到N中数字1出现的个数
1. 定义N 及用来统计的cnt, 用来循环的n;2. 输入N ;3. 将n从1到N循环, 对于每个n执行如下操作:a) 循环取出n的每位数字值 b)判断该位是否为1, 如是则累加到cnt上。4. 输出结果。代码如下:include <stdio.h>int main(){int n, N, cnt = 0;scanf("%d",&N);\/\/输入N值。for...

C语言题目1:找出1-10000里各个位含有数字1的整数,并统计数量。_百度知 ...
include<stdio.h>main(){ int i,j,n=0; for(i=1;i<=10000;i++){ j=i; while(j!=0){ if(j%10==1){ printf("%d\\t",i); j=0; n++;}else j\/=10;}} printf("\\n%d个",n);}如图所示,望采纳。。。

c语言编程如何寻找输入数字中没有出现的数字?
由于输入个数不确认,所以需要动态数组。下面我的代码,输入任意个数字,输出没有出现的数字。(如果输入了非数字字符,会被程序过滤掉)。代码已详细备注。include<stdio.h> include<malloc.h> typedef struct nList { int *nums;\/\/输入的数组 int len;\/\/数组的长度 int maxN;\/\/数组中的最大数 ...

C语言中一个英文字母.汉字.数字 分别都占几个字节啊
char c[] = "abcde";\/\/占用4+1 = 5 个,结尾有一个'\\0'2、数字:这个有很多中,从小到大分别为:short、int、float、long、double分别为:1个、2个、4个、8个、16个 3、汉字:理论上说,一个汉字占用两个字符。比如:中国,就占用4个字符,如果是:char c[] = "中国";\/\/占用4+1 ...

C语言题目 输入一个十进制整数n,找出1~n中含有数字7或7的倍数的所有的...
include <stdio.h> int main(){ int n,i,j;scanf("%d",&n);for(i=1;i<=n;i++){ if(i%7==0){ printf("%d ",i);} else { j=i;while(j!=0){ if(j%10==7){ printf("%d ",i);break;} j=j\/10;} } } printf("\\n");return 0;} ...

c语言或c 怎么统计不重复整数的个数
define N 1024 void main() { int a[N],n,m,b,i,j;scanf("%d",&n); if ( n>N ) n=N;for ( i=m=0;i<n;i++ ) { scanf("%d",&a[i]); b=0; for ( j=0;j

C语言中如何将一个数字的各个位上的数分别提取?
第二:转化为字符串,这里要用到一个函数itoa。同样是计算123各个位数。代码:int data = 123;char array[100];itoa(data, array, 10); \/\/转化为字符串printf("%c\\n", array[0]);printf("%c\\n", array[1]);printf("%c\\n", array[2]);结果和上面一样!两种方式都能计算出,但是...

c语言 找1到n中含有6的数字的个数
for(i = 1; i <= N; ++i) { t = i; while(t) { if(t % 10 == 1) ++cnt; t \/= 10; } } printf("cnt = %d\\n",cnt); } return 0;}

相似回答