當前位置:首頁 » 編程語言 » 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;
}