C语言编程题:输入一个不多于4位的正整数,要求如下1求出它是几位数;2输出每一位数。有谁会帮帮忙

作者&投稿:致裴 (若有异议请与网页底部的电邮联系)
用C语言实现以下:输入一个不多于4位数的正整数,要求如下:1、求出它是几位数; 2、输出每一位数~

为了能够顺序地输出一个数的各个位对应的数,我用的是递归调用的方法实现的,例如:
Input a number:1234
1 2 3 4
This number has 4 bits!
程序如下:
#include
int getBit(int n)
{
int k;
static int count=1; //定义一个静态变量count保存某个数的位数,相当于全局变量
k=n%10; //对变量n取余并用k保存
n/=10; //将n除以10表示减少一位
if(n){ //如果n>0则执行
++count;//位数增1
getBit(n); //递归调用,最后能够逆序输出所取的余数,这样就能得到一个数顺序的位数
}
printf("%4d",k);
return count; //返回位数
}
void main()
{
int num,count;
do{
printf("Input a number:");
scanf("%d",&num);
}while(num=10000); //如果n不满足条件则继续循环
count=getBit(num);
printf("
This number has %d bits!
",count);
getch();
}

#include
#include

int main(void)
{
int num;
do
{
printf("请输入一个不大于四位的数据:
");
scanf("%d", &num);
while(getchar()!='
')//防止意外输入无效字符
continue;
}while(!(num>0 && num<10000));

int i=1, weishu=0;
for(i=1; num/i>0; i=i*10)
weishu++;
printf("输入的数据是%d位数据
", weishu);

int num1 = num;
for(i=pow(10, weishu-1); i>=1; i/=10)
{
printf("%d", num1/i);
num1 = num1%i;
}
printf("
");

num1 = num;
for(i=10; i<=pow(10, weishu); i*=10)
{
printf("%d", num1%10);
num1 = num1/10;
}
printf("
");

return 0;
}

/*
VC++ 6.0 运行结果

请输入一个不大于四位的数据:
1234
输入的数据是4位数据
1 2 3 4
4 3 2 1
Press any key to continue
*/

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define SIZE 512int main()
{
int num=0,sum=0;
char szNum[SIZE]={0};
char *p=szNum;
puts("请输入一个数:");
scanf("%d",&num);
itoa(num,szNum,10);
printf("该数为%d位数\n",strlen(szNum));
printf("每位上的数为:");
while(*p)
{
printf("%c ",*p);
++p;
}
printf("\n");
return 0;
}


编程题:输入一个字符,若是大写字母,直接输出;若是小写字母,则输出ASC...
您好,很高兴回答您的问题哦。您提出的这个问题,不是很难,注意两个关键点即可:第一,注意有几个若是,所以肯定是要用到选择语句,最平常的就是if语句,注意if和else的搭配;第二,早知道小写字母和数字分别对应的ASCII值分别为多少。一般c语言书的最后的附录都有相关说明。程序设计一定要自己动手去...

请问大神,C语言题,编程功能实现:输入一个字符串,输出字符串中的数字部分...
void main(){char str[50];int i=0; \/\/i是数组下标. gets(str); \/\/输入字符串.int s=0;while(str[i]) \/\/当数组元素不是字符串结束符时.执行while{ if(str[i]>='0'&&str[i]<='9') \/\/如果数组元素是数字. 就输出这个元素. { s=s*10+int(str[i])-int('0');...

C语言编程问题:从键盘上输入一个字符串按照以下规则对其加密。_百度知 ...
include <stdio.h>int main(){int i=0;char string[50];gets(string);puts(string);while(string[i] != '\\0'){if(string[i]>='a'&&string[i]<='z'){string[i]=(string[i]+3-'a')%26+'a';}else if(string[i]>='A'&&string[i]<='Z'){string[i]=(string[i]+3-'A'...

C语言编程题!!从键盘上输入一个正整数,求其各数位之和(如输入的是1002...
include <stdio.h> void main(){ int num=0,sum=0;scanf("%d",&num);while(num%10!=0){ sum+=num%10;num=num\/10;} printf(%d的各位数之和是%d",num,sum);}

编程题,C语言。 完整编程。 输入一个浮点数,分别输入它的整数部分和小数...
include <stdio.h>void main(){ double x; \/\/其中x表示输入的数 int a; \/\/表示实数的整数部分 double b; \/\/表示整数的小数部分 printf("请输入一个实数:"); \/\/提示输入一个数 scanf("%lf",&x); a = (int)x; b = x-a; printf("x整数部分为:%d,...

c语言编程 从键盘上输入一个字符串通过函数调用的方法使该字符串翻转...
1 输入字符串;2 调用函数进行翻转,可以通过将对称位置字符交换值实现;3 输出结果。代码如下:void revers(char *s){ char *p=s,c; while(*p)p++; p--; while(p>s) { c = *p; *p = *s; *s = c; }}int main(){ char s[100]; scanf("%s"...

任意输入一个四位数,逐个输出数字。C语言编程题
include <stdio.h>int main(){ int i; char s[10]; scanf("%s",s);\/\/最简单的方法 就是直接输入成字符串。 for(i = 0; s[i]; i ++) printf("%c\\n",s[i]);\/\/输出各个位 每位一行。 return 0;}

用c语言编程,字符统计:输入一个文本文件,分别统计出其中英文字母、空格...
include <stdio.h> int main(){ char c;int letters=0,space=0,digit=0,other=0;printf("请输入一行字符:");while ((c=getchar())!='\\n'){ if (c >= 'a'&&c <= 'z' || c >= 'A'&&c <= 'Z'){ letters++;} else if (c == ' '){ space++;} else if (c >=...

编程题C语言,在键盘上输入一个3行3列矩阵的各个元素的值?
请你询问老师,这个题目本身是出错了的,因为在已有部分的基础上,是无法实现指定的功能的。必须要把左图中代码的第三行 void fun(int a[3][3])修改为:int fun(int a[3][3])才行的。再填充以下内容:

C语言编程题“从键盘任意输入一个字符串,统计其中出现空格和非空格的...
include <stdio.h> include <string.h> void main(){ int a=0,b=0,i;char c[300];printf("请输入一个少于300字符的字符串:");gets(c);for(i=0;i<300,c[i]!='\\0';i++){ if(c[i]==' ')a++;else b++;} printf("字符串中空格字符有%d个,非空格字符有%d个\\n",a,b)...

清浦区18710677022: 用C语言试编程完成如下功能:输入一个不多于4位的整数,求出它是几位数. -
须阳甲氧: int main() { int x; scanf("%d",&x); printf("是%d位数\n",x>99?x>999?4:3:x>9?2:1); return 0; }

清浦区18710677022: C语言编程题:输入一个不多于4位的正整数,要求如下1求出它是几位数;2输出每一位数.有谁会帮帮忙 -
须阳甲氧: #include <stdio.h>#include <string.h>#include <ctype.h>#include <stdlib.h>#define SIZE 512 int main() { int num=0,sum=0; char szNum[SIZE]={0}; char *p=szNum; puts("请输入一个数:"); scanf("%d",&num); itoa(num,szNum,10); ...

清浦区18710677022: 编写一个c程序,输入一个不多于4位的正整数,求出它是几位数. -
须阳甲氧: 实际验证正确的 #include <stdio.h> void main() { int n, c = 0; scanf("%d", &n); if (n == 0) c = 1; else while (n > 0) { n /= 10; c++; } printf("%d\n", c); }

清浦区18710677022: c语言中实现以下 输入一个不多于4位的整数,求出它是几位数,并逆序输出各位
须阳甲氧: #include<stdio.h> main() { int n,tempn=0,num=0; printf("please input the number:\n"); scanf("%d",&n);//输入整数n while(n)//如果n=0则退出循环 { tempn = tempn*10 + n%10; // tempn是为了计算逆序的数 n = n/10;//除掉一位 num++;//num为了判断位数 } printf("位数是:%d,逆序后是:%d\n",num,tempn); system("pause"); } ///这是最简单的解法了

清浦区18710677022: c语言:(输入一个不多于4位的正整数,判断它是几位数)这是我的解法,我觉得不好,有没精炼的,求指导 -
须阳甲氧: main() {int a,b;scanf("%d",&a);if ( a > 9999 ){printf("E\n");}else{b=0;do{b++;a /= 10 ;}while( a );printf("%d\n",b);}getch(); }

清浦区18710677022: C语言如何编程实现给出一个不多于4位的正整数,输出它是几位数并且按逆序输出每一位数字? -
须阳甲氧: #include <stdio.h> #include <math.h>int main(void) {int num;do{printf("请输入一个不大于四位的数据:\n");scanf("%d", &num);while(getchar()!='\n') //防止意外输入无效字符continue;}while(!(num>0 && num<10000)); int i=1, ...

清浦区18710677022: C语言题目.输入一个不多于4位的正整数,求它的位数,并按逆序输出各位数字. -
须阳甲氧: #includeint main() { char digtal[20]; int count = 0; int i; int num; scanf("%d",&num); while( num ) { digtal[count]= num % 10; num /= 10; count ++; } printf("输入%d, 共%d位\n", num,count); for(i = count - 1; i >= 0 ; i--) printf("%d",digtal[i]); return 0; }

清浦区18710677022: c语言编辑,请输入一个不大于四位数的正整数,要求一,求它是几位数,要求二,求逆序打印出数字 -
须阳甲氧: 直接将这个数字以字符串形式输入,然后再调用string.h头文件中的函数可以得到答案.

清浦区18710677022: 编程输入一个不多于四位的正整数 -
须阳甲氧: 用Long接数,之后用Long.length().判断一下,不多于四位就执行下面的,多余就提示重新输入.

清浦区18710677022: c语言输入一个不多于4位的正整数,求出它的几位数,逆序打印出各位数字 用if else做 -
须阳甲氧: a[j++] = i % 10; 相当于a[j] = i % 10;后面的i%10是求个位上的那个数字,赋值给a[j]j从0开始 也就是说各位上的数字付给a[0] 然后j++,i/=10;就是去掉个位数,再对i%10就是求十位数,放在a[1]以此类推下去就可以了例子: 123 123%10 = 3123/10 = 12; 12 % 10 = 2体会一下吧

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网