A. c語言 給一個不多於5位的正整數 用C語言寫出
不對的原因,主要是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);
}
修正後的代碼執行如下:
B. C語言編程:給一個不多於5位的正整數,
不多於五位的正整數,包括一位數到五位數,所有的數值。
即[1,99999].
以下代碼,功能為獲取一個不多於五位的正整數並輸出。
intmain()
{
intn;
srand(time(NULL));
printf("%d",rand()%99999+1);
}
C. C語言題目) 給一個不多於5位的正整數,要求:
沒看懂你想問什麼,就解釋一下你的備注提問的問題吧
1、int a[10]的意思是定義一個長度為10的整型向量,它可以存儲10個整型的數值
2、這里int一個sum是為了下面用來計數,所以先將它賦值為0
3、這些東西是for循環裡面的控制變數,總共有三個,用分號隔開。第一個就是分好前面的,表示循環起始條件是從i=0開始,兩個分號中間的就是循環結束條件,因為不用設置所以就空著了,最後那個是變數的變化,i++的意思是i=i+1。
D. C語言編程,給定一個不多於5位的正整數,求① 求它是幾位數② 分別輸出每一位數字③ 按逆序輸出各位數字
#include<stdio.h>
#include<stdlib.h>
void mian()
{
int num,i,temp[5];
printf("請輸入一個低於5位的整數\n");
scanf("%d",&num);
for(i=0;i<5,i++)
{
temp[i]=num%10;
num=num/10;
}
for(i=0,i<5;i++)
{
if(temp[i]<0)
printf("這是一個%d位數",i);
}
while(temp[i]!=0)
{
printf("%d",temp[i]); i++;
}
}
E. C語言編程:給一個不多於5位的正整數,要求編程實現(1)求它是幾位數(2)逆序輸出各位數字
這個我剛好做過,你看看。
#include<stdio.h>
void main()
{
long int a;
int n,b,c,d,e,f;
printf("\n請輸入一個整數(0~99999):");
scanf("%d",&a);
if(a>9999)
n=5;
else if(a>999)
n=4;
else if(a>99)
n=3;
else if(a>9)
n=2;
else n=1;
printf("\n這個數的位數=%d",n);
f=a/10000;e=a%10000/1000;d=a%10000%1000/100;c=a%10000%1000%100/10;
b=a%10000%1000%100%10;
printf("\n萬位為%d\n千位為%d\n百位為%d\n十位為%d\n個位為%d\n",f,e,d,c,b);
switch(n)
{
case 5:printf("%d%d%d%d%d",f,e,d,c,b);
printf("\n反序數字為:");
printf("%d%d%d%d%d",b,c,d,e,f);break;
case 4:printf("%d%d%d%d",e,d,c,b);
printf("\n反序數字為:");
printf("%d%d%d%d",b,c,d,e);break;
case 3:printf("%d%d%d",d,c,b);
printf("\n反序數字為:");
printf("%d%d%d",b,c,d);break;
case 2:printf("%d%d",c,b);
printf("\n反序數字為:");
printf("%d%d",b,c);
case 1:printf("%d",b);
printf("\n反序數字為:");
printf("%d",b);
}
} 註:f是求萬位的數字,後面的以此類推。
F. 設計一個C語言程序:給一個不多於5位的正整數,要求:求出它是幾位數;分別輸出每
看你怎麼求。
如果是通過模除 和除法的方式,必然會得到7, 不可能得到8.
如果中間有轉為浮點數的話 就不一定了。
G. 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位數! "); } }
(7)c語言求一個不多於五位的數擴展閱讀:
if語句的一般形式如下:
if(表達式)語句1
[else語句2]
if語句中的「表達式」可以是關系表達式、邏輯表達式,甚至是數值表達式。其中最直觀、最容易理解的是關系表達式。所謂關系表達式就是兩個數值進行比較的式子
if 語句的執行流程:首先判斷關鍵詞 if 後括弧內條件表達式的值,如果該表達式的值為邏輯真(非 0),則執行 if 體,接著執行 if 體後的其他語句;否則,若該表達式的值為邏輯假(0),則不執行該 if 體,直接執行 if 體後的其他語句。
H. 個C語言程序,給一個不多於5位的正整數,要求:求出它是幾位數;分別
#include<stdio.h> #include<math.h> int main() { long int num; int indiv,ten,hundred,thousand,ten_thousand,place; printf("intput a interger(0~99999):"); scanf("%ld",&num); if(num>9999) place=5; else if(num>999) place=4; else if(num>99) place=3; else if(num>9) place=2; else place=1; printf("位數=%d\n",place); printf("每位數字為:"); ten_thousand=num/10000; thousand=(int)(num-ten_thousand*10000)/1000; hundred=(int)(num-ten_thousand*10000-thousand*1000)/100; ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10; indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10); printf("方向數字為\n:"); switch(place) { case 5:printf("%d %d %d %d %d\n",indiv,ten,hundred,thousand,ten_thousand);break; case 4:printf("%d %d %d %d\n",indiv,ten,hundred,thousand); break; case 3:printf("%d %d %d\n",indiv,ten,hundred); break; case 2:printf("%d %d\n",indiv,ten);break; case 1:printf("%d\n",indiv);break; } } 是這個樣子了,如果有錯,可能是我打錯了吧,基本是沒什麼錯誤的
I. c語言輸入一個不多於5位正整數要求:求出它是幾位數;分別列印出每一位數字;按逆序輸出各位數字。
#include <stdio.h>
int main(void)
{
long int x;
int y,i=1;
printf("請輸入一個不超過100000的整數:"); // <------請把,x去掉
scanf("%ld",&x);
if (x>99999||x<1) printf("你所輸入的數據超出計算范圍\n");
else
{
while (x!=0) // <------請把 do 去掉
{
y=x%10;
printf("%d\t",y);
x=x/10;
i=i+1;
}
printf("\n這個數共有%d位\n",i);
}
return 0; // <------這里return 0;放最外層計較好
}