A. C語言 編寫一個程序,輸入一個正整數,求出它是幾位數。
求一個正整數n的位數可以先定義一個變數num,並初始化為0,依次把該整數n除以10,直到其為0為止,並且每除一次10,變數num的個數就自加1,最後num的值就是該整數n的位數。
#include <stdio.h>
int main()
{
int n,num=0;
scanf("%d",&n);
while(n){
num++;
n/=10;
}
printf("%d ",num);
return 0;
}
/*
輸出:
123456
6
*/
(1)編程如何輸入一個整數擴展閱讀:
正整數,即大於0的整數,如,1,2,3…
0既不是正整數,也不是負整數(0是整數)。
負整數,即小於0的整數,如,-1,-2,-3…
知道正整數的一種分類辦法是按照其約數或積因子的多少來劃分的,比如僅僅有兩個的(當然我們總是多餘地強調這兩個是1和其本身),就稱之為質數或素數,而多於兩個的就稱之為合數。
B. 如何用C語言編寫程序輸入一個正整數n,編程序輸出從2到n間的所有完數。
C語言實現如下:
#include<stdio.h>
void main()
{
int i,j,k,n;
scanf("%d",&n); //輸入一個正整數n
for(i=2;i<=n;i++)
{
k=0;
for(j=1;j<=i-1;j++)
if(i%j==0) k+=j;
if(k==i) printf("%d\n",i);
//判斷i的所有真因子之和是否等於i,是則輸出i。
}
}
注意:建議n的取值小於10000,否則程序運行的時間將比較長。
知識擴展:完數,一般指完全數,一個自然數如果它的所有真因子(即除了自身以外的約數)的和等於該數,那麼這個數就是完全數,如:6的真因子有1
、2、3,6=1+2+3,所以6是一個完全數。
C. C語言 編寫一個程序,輸入一個正整數,求出它是幾位數。
/*功能:輸入一個任意長度的正整數,求出它是幾位數。*/
#include<stdio.h>
int main()
{
int number; int count = 0;//記錄個數
scanf("%d", &number);
if (number == 0)
{
printf("number is %d\n",count+1);//0是一位數
} else
{
while (number != 0)
{
number = number / 10;
count++;
} printf("number is %d", count);
} return 0;
}
D. 用C語言編寫程序從鍵盤輸入一個正整數數n,輸出n!
編程實現計算n!,也就是n*(n-1)*(n-2)*....*1,可以通過遞歸函數來實現,具體實現方法:
#include <stdio.h>
int Func(int n)
{
if(n < 2)
return 1;
else
return n*Func(n-1);
}
void main()
{
int n =0,m=0;
printf("請輸入一個正整數:")
scanf("%d",&n);
m=Func(n);
printf("%d!=%d
",n,m);
}
在以上程序代碼中,Func()為遞歸函數,主函數main()中接收鍵盤輸入整數值後,調用Func()遞歸函數,首層m=n*(n-1)!,繼續遞歸調用,m=n*(n-1)(n-2)!,這樣逐層遞歸,直到計算出N!。
程序輸出結果如下:
(4)編程如何輸入一個整數擴展閱讀:
所謂n的階乘就是從1到n的乘積,所以除了遞歸法來實現以外,其實我們也可以通過一個for循環,從1到n依次求積同樣可以達到計算n!的目地。
具體實現代碼如下:
#include <stdio.h>
int main() {
int n,i,s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)//for循環求累積
s=s*i;
printf("%d ",s);
return 0;
}
/*
運行結果:(例如求5的階乘)
5
120
*/
E. C語言編程,從鍵盤輸入一個6位整數,輸出該整數的後3位數值。(ps:例如,對於6位整數342071
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n );
printf("%d ", n%1000 );
return 0;
}
如果不用log函數,並假設輸入的數indata是非負整數,則可以如下:
int n, s;
n = 0;
s = 0;
while ( indata ) {
n++;
s += indata % 10;
indata /= 10;
}
位數在權n中,和在s中。
(5)編程如何輸入一個整數擴展閱讀:
C程序是由一組變數或是函數的外部對象組成的。 函數是一個自我包含的完成一定相關功能的執行代碼段。我們可以把函數看成一個「黑盒子」,只要將數據送進去就能得到結果,而函數內部究竟是如何工作的,外部程序是不知道的。
C程序中函數的數目實際上是不限的,如果說有什麼限制的話,那就是,一個C程序中必須至少有一個函數,而且其中必須有一個並且僅有一個以main為名的函數,這個函數稱為主函數,整個程序從這個主函數開始執行。
F. C語言如何輸入一個整數或一個26進制數字元串
int main(){
int a;
scanf("%p",&a);//16進制數輸入%p是輸入一個十六進制的數scanf("%llx",&a);也可以輸入十六進制並且比較正規
printf("%d",a);//十進制輸出%d是輸出一個十進制的數
printf("0x%x",a);//16進制輸出printf("%llX\n",a);也可輸出一個十六進制數如果紅色部分大寫X則輸出十六進制為大寫字母否則小寫x輸出為小寫字母
}
G. 編寫程序,任意輸入一個正整數,輸出其各位數字重排後最小的整數。 例如: 輸入:2017輸出127
一行就能完成的,你們這樣忽悠題主真的好嗎#include <stdio.h>
int main(int c,char** p)
{
return (c=getchar())!=EOF?main(c,p),putchar(c),0:0;
}
H. 如何用Python編程輸入一個多位整數,從高位到低位依次輸出該整數每個數位上的
依次輸出,那就是一個一個輸出,那麼用for循環遍歷字元串最方便。
輸出格式是一行,每個數字間用空格隔開,如果你是一行輸出一個數字,輸出換成print(i)。
I. c語言如何編程,能夠輸入一個整數,得到該整數十位上的數字
假設輸入的整數放到變數x中,則語句x/10%10即是十位上的數字,代碼如下:
#include <stdio.h>
int main(void)
{
int x;
printf("輸入一個整數:");
scanf("%d",&x);
printf("%d的十位上的數字是:%d\n",x,x/10%10);
return 0;
}