当前位置:首页 » 编程语言 » c语言怎么表示不能超过五位数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言怎么表示不能超过五位数

发布时间: 2022-11-03 15:44:18

① 如何用c语言输出一个不多于5位的正整数的每一位数字

1。位操作法:
这个方法优点是空间量较小计算更大的整数时不会崩溃,大致思路是:先在宏定义中,将二进制的BCD码设置成相应的整数值,主程序中要设置一个接受数符的字符串,设置一个掩码MASK=1;由于正整数N在计算机中是二进制表示的,故对N进行一次N&=MASK操作可以得到N的最后一位,并且用一个循环把相应的位储存在接受数符的字符串中,然后对N进行>>运算,再进行同样的操作得到第二位,依次类推直到得到N的每一位,最后用PRINTF输出,这个方法相对来说比较好点。
2。递归函数法:
递归函数应该有一个基本值和一个靠近该基本值的函数递推结构,在这个问题中,当数字在0——9时,很容易的可以看出这些数字是0——9,可是当这些数字是两位数时,第一位是对10的取余操作,第二位便是先把该数除十后再对10的取余操作,我们需要用一个逆序对其进行输出,故每次进行s=N%10 N=N/10 调用函数本身的操作 PR(s);当然这个进行的条件是N不是一个个位数,故需要加上一个if(N>=10)的条件,这样当许多次递归直到最后N<10时,函数会从最里一层的函数回到递归函数的开始处,并且同时每次处理掉每次递归没有处理完的PR打印输出项,即会按顺序打出正整数的各位数字,但是由于每次递归,都会分配新的存储空间,故占用空间损耗大,数字一大便很难保正程序的正常了,故不推荐这个方法:
3.谭浩强特别法:
先来个if把这个数分成1位数,两位数,三位数,四位数,五位数的情况,然后对每个种情况相应处理,比如这个数是五位数,就设置数符A=N\10000,B=N\1000...等等,把这五个数符弄出来打印,其他情况同样处理。。。。不过这个方法很笨拙。。并且不适于N十分大的情况,且程序代码是一堆废话,顶多就是个玩具程序,不推荐用此种方法。

② c语言程序编写:要求从键盘上输入一个不多于5位数的正整数,依次输出每一位数字

#include <stdio.h>

void main()

{

int n;

scanf("%d",&n);

if(n/100000)

printf("应输入一个不多于5位数的正整数! ");

else

{

printf("%d",n%10);

n/=10;

while(n)

{

printf(",%d",n%10);

n/=10;

}

}

}


③ c语言 给一个不多于5位的正整数 用C语言写出

第一种方法代码:

#include <stdio.h>

#include <math.h>

int main()

{

int a,b,c,d;
int count = 1;
printf("请输入一个不多于5位的正整数:");

scanf("%d",&a);
c = a;

printf("逆序: ");

while(c / 10 != 0)

{

count++;

b = c % 10;

printf("%d ",b);

c = c / 10;

}

b = c % 10;

printf("%d ",b);

printf("位数是:%d ",count);

printf("顺序: ");

while(a % 10 != 0)

{

d = a / (int)pow(10,(count-1));

printf("%d ",d);

a = a % (int)pow(10,count-1);

count--;

}

return 0;

}

(3)c语言怎么表示不能超过五位数扩展阅读:

输入一个不多于5位的正整数,编程实现以下功能:

(1)判断它是几位数

(2)分别打印每一位数字

(3)按逆序输出各位数字

(4)例如:输入2345

(5)则输出:2 3 4 5

5 4 3 2

编程思路:

首先用if语句判断输入的数是几位数,然后分别求出每位上的数字并打印,最后将求出来的每位上的数字反序输出。

程序相关知识点:

选择结构中的if语句、switch语句,循环结构中的while语句、for语句。

④ C语言编程:输入一个不超过5位的正整数,

#include<stdio.h>
void main()
{
int n,i,a[10];
printf("请输入一个不超过5位的正整数:\n");
scanf("%d",&n);
int sum=0;
for(i=0;;i++)
{
a[i]=n%10;/*取余存于a[i]中*/
n=n/10;
sum++;/*位数加一*/
if(n==0) break;
}
printf("它是%d位数\n",sum);
int j;
printf("它的每一位是:");
for(j=i;j>=0;j--)/*此时i的值是上个循环的值*/
printf("%d ",a[j]);
printf("\n");
printf("逆序输出每一位:");
for(j=0;j<=i;j++)
printf("%d ",a[j]);
}

⑤ c语言编程:给一个不多于五位的正整数,用if-else语句求出它是几位数

可以参考下面的代码:

#include <stdio.h>

void main()

{ intnum; printf("请输入一个不大于5位数的正整数:");

scanf("%d",&num);

if(num>99999||num<1)

printf("您的输入有误! ");

else { if(num<10)

printf("您输入的是1位数! ");

else if(num<100)

printf("您输入的是2位数! ");

else if(num<1000)

printf("您输入的是3位数! ");

else if(num<10000) printf("您输入的是4位数! ");

else printf("您输入的是5位数! "); } }

(5)c语言怎么表示不能超过五位数扩展阅读:

if语句的一般形式如下:

if(表达式)语句1

[else语句2]

if语句中的“表达式”可以是关系表达式、逻辑表达式,甚至是数值表达式。其中最直观、最容易理解的是关系表达式。所谓关系表达式就是两个数值进行比较的式子

if 语句的执行流程:首先判断关键词 if 后括号内条件表达式的值,如果该表达式的值为逻辑真(非 0),则执行 if 体,接着执行 if 体后的其他语句;否则,若该表达式的值为逻辑假(0),则不执行该 if 体,直接执行 if 体后的其他语句。

⑥ 用C语言编程:给一个不多于5位的正整数,要求如下:

不对的原因,主要是if条件语句应该是用“==”而不是“=”,这是判断,不是赋值。其它的错误,scanf_s("%d",&a)改成scanf("%d",&a),printf用错了,printf打印应该是一个占位符对应一个要输出的内容,就是你代码中%d对应一个输出。

修改后的代码:

#include<stdio.h>

int main()

{

int a, b, c, d, e, f, w;

printf("输入一个不多于五位的整数:");

scanf("%d",&a);

//第一问,求出它是几位数

b = 10000 - a;

c = 1000 - a;

d = 100 - a;

e = 10 - a;

f = 0 - a;

while (a < 0 || a > 99999)

printf("输入错误,请重新输入 ");

if (b < 0)

{

printf("a是五位数 ");

w = 5;

}else if (c < 0){

printf("a是四位数 ");

w = 4;

}else if (d < 0){

printf("a是三位数 ");

w = 3;

}else if (e < 0){

printf("a是两位数 ");

w = 2;

}else if (f < 0){

printf("a是个位数 ");

w = 1;

}else

printf("输入错误,请重新输入 ");

//第二问,分别输出每一位数字

if (w == 5)

printf("%d %d %d %d %d ", a / 10000, a / 1000 % 10, a / 100 % 10, a / 10 % 10, a % 10);

if (w == 4)

printf("%d %d %d %d ", a / 1000 % 10, a / 100 % 10, a / 10 % 10, a % 10);

if (w == 3)

printf("%d %d %d ", a / 100 % 10, a / 10 % 10, a % 10);

if (w == 2)

printf("%d %d ", a / 10 % 10, a % 10);

if (w == 1)

printf("%d ", a % 10);

//第三问,按逆序输出各位数字

if (w == 5)

printf("%d %d %d %d %d ", a % 10, a / 10 % 10, a / 100 % 10, a / 1000 % 10, a / 10000);

if (w == 4)

printf("%d %d %d %d ", a % 10, a / 10 % 10, a / 100 % 10, a / 1000 % 10);

if (w == 3)

printf("%d %d %d ", a % 10, a / 10 % 10, a / 100 % 10);

if (w == 2)

printf("%d %d ", a % 10, a / 10 % 10);

if (w == 1)

printf("%d ", a % 10);

}

修正后的代码执行如下:

⑦ 用C语言编程:给一个不多于5位的正整数,要求循环嵌套实现

用一个单纯的循环就可以实现这样的功能了。下面是实现的程序源代码。
#include<studio.h>
int main()
{int x,x1,x2=0,n=0;
scanf(“%d”,&x);
for(x1=x;x;x/=10)
{x2=x2*10+x%10;
n++;
}
printf(“%d是一个%d位数,反过来是%d\n",x1,n,x2);
return 0;
}

⑧ C语言,求一个不大于五位数的数字个位数字和能不能被五整除

  1. 算法非常简单,读取数字,求得各位数之和,判断是否能被5整除。

  2. 例程:

    #include<stdio.h>
    inta,val,sum=0;
    intmain(){
    printf("输入一个不多于五位数的整数:");
    scanf("%d",&val);
    for(a=val;0<a;a/=10)
    sum+=a%10;//求各位之和
    printf("%d各位数字之和%s可以被5整除",val,((sum%5)?"不":""));
    return0;
    }

⑨ 用C语言编程:给出一个不多于5位的正整数,判断它是几位数

思路是:①判断这个数是否小于10000并且大于0(检查输入的正确性)②假设输入数字是a,判断a是否等于1000、100、10。③判断a%1000是否大于0,如果是,则这个数是四位数,如果不是,判断a%100是否大于0,如果是,则这个数是三位数,判断a%10是否大于0,如果是,则这个数是两位数,如果以上情况都不是,就是一位数。

注释:a%1000的结果表示a除以1000后的余数(小学数学里的除法余数概念),如果大于0,说明有余数,说明a至少大于1000.如果等于0,说明a小于或等于1000

⑩ c语言编程:给一个不多于五位的正整数,用if-else语句求出它是几位数

#include

int
main()
{
int
count;
printf("Please
input
a
number:");
scanf("%ld",&count);
if(count>=10000&&count<=99999)
printf("这是个5位数!");
else
if(count>=1000&&count<=9999)
printf("这是个4位数!");
else
if(count>=100&&count<=999)
printf("这是个3位数!");
else
if(count>=10&&count<=99)
printf("这是个2位数!");
else
if(count>=0&&count<=9)
printf("这是个1位数!");
else
printf("不在范围内!");
return
0;
}