c語言各位數字
求整數各位和,將整數各個位分離出來的方法(除10取模)很常用。
函數如下
int intsum(int n)
{
int sum = 0;
while(n) //不斷分離最低位
{
sum += n%10;
n /= 10;
}
return sum;
}
㈡ C語言,如何輸出每一位數字
要輸出整型數值的每一位數字,關鍵在於將每一個數字提取出來。
方法有很多,實現方式更是多種多樣,以最常見的兩種方式舉例說明:
一、傳統方法,通過除法和模除,取出每一位,並輸出。
參考代碼如下:
#include<stdio.h>
voidoutput(intn)
{
inta[10];
intl=0;
/*
循環獲取每一位的值,並存到數組a中。
其中l表示已經獲取到的位數。
由於每次獲取的是個位n%10,所以存在數組a中的是各個位數的逆序。
*/
while(n)
{
a[l++]=n%10;
n/=10;
}
//反序輸出每一位值。
while(--l>=0)
printf("%d",a[l]);
}
intmain()
{
intn;
scanf("%d",&n);//輸入n值。
output(n);//輸出各個位。
return0;
}
二、轉為字元串,然後輸出字元串各個字元。
由於在C語言中,有很多庫函數,比如itoa, sprintf等,都可以很方便的將整數轉為字元串,而逐位輸出字元串各個位元組值是很簡單的,所以可以通過轉為字元串,再輸出的方式輸出各個位的值。
參考代碼:
#include<stdio.h>
voidoutput(intn)
{
chara[11];
inti;
sprintf(a,"%d",n);//轉為字元串。
for(i=0;a[i];i++)//遍歷字元串。
printf("%c",a[i]);//輸出各個位值。
}
intmain()
{
intn;
scanf("%d",&n);//輸入n值。
output(n);//輸出各個位。
return0;
}
㈢ c語言中如何求一個整數的各位數
用取余和取模的方法。比如a:a%10得到是各位。a/10得到的是去除個位的那些數,聲明一個變數來存儲這個數。如此循環就可以了。你可以提前聲明一個足夠大的一維數組來存放正整數的各個位。希望對你有幫助。上面那位的程序可以借鑒,但是不全,改一下。
㈣ C語言中如何輸出任意一個數字的每一位數字
比較常用的思路就是不斷的除10,比如隨便一個數字12345
12345/10=1234
12345%10=5
再把 1234/10=123
1234%10=4
這樣就把這個數字按位拆開。
#include
#include
int main()
{
int iNumber;
cout << "請輸入一個數字:" << endl;
cin >> iNumber;
//定義一個棧
int stack;
int top=-1;
while (iNumber % 10)
{
stack[++top]=iNumber % 10);
iNumber = iNumber / 10;
}
printf("從高到低依次是: ")
for(;top>=0;top--)
{
printf("%d ",stack[top]);
}
system("pause");
return 0;
(4)c語言各位數字擴展閱讀;
當一個運算對象兩側的運算符優先順序別相同時,則按運算符的結合性來確定表達式的運算順序。關於結合性的概念在其他高級語言中是沒有的,這是C語言的特點之一。
C語言也將 34 種運算符規定了不同的結合性。大多數運算符結合方向是「自左至右」,即:先左後右,也叫「左結合性」,例如 a-b + c,表達式中有-和+兩種運算符,且優先順序相同,按先左後右結合方向,先圍繞減號結合,執行 a-b 的運算,再圍繞加號結合,完成運算(a-b) + c。
㈤ C語言中如何將一個數字的各位數字以數組方式輸出
#include <stdio.h> #include <string.h> int main() { char a[100]; int n,i; scanf("%s",a); n=strlen(a); for(i=0;i<n;i++) printf("%c ",a[i]); }
㈥ C語言怎麼求出一個多位數每位的數字
#include<stdio.h>
#include<string.h>
voidmain()
{
inti,n,k=0;
charstr[1000];
gets(str);
n=strlen(str);
for(i=0;i<n;i++)
if(str[i]<'0'||str[i]>'9')
k=1;
if(k==1)printf("輸入數有誤,不是多位數。");
else
{
printf("這個多位數從個位數開始,依次為: ");
for(i=n-1;i>=0;i--)
printf("%d",str[i]-48);
}
}
運行示例:
對於位數很多的多位數,用上述方法可以解決,如果定義為整型,則無法解決。
㈦ C語言,逆序輸出自然數的各位數字
如果用數組,就是順序輸入,倒序輸出。用整型的話,循環輸出最低一位即可。簡單的代碼:
#include<stdio.h>
intmain()
{
intnum;
while(1)
{
scanf("%d",&num);
while(num>0)
{
printf("%d",num%10);
num/=10;
}
printf(" ");
}
return0;
}
㈧ C語言中如何將一個數字的各個位上的數分別提取
1、方法一:
我的做法是先將整型轉為字元串,再將轉後的字元串取需要的字元轉為整型,過程說起來復雜,但是寫起來只要兩行代碼就行了~
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
int number = 12345;
char string[25];
itoa(number, string, 10);
printf("integer = %d string = %s ", number, string); //將整型轉換為字元創
printf("%d",(int)string[0]-48); //將字元串轉為整型
return 0;
}
2、方法二:
int a[100];
int i;
假設x為INPUT的數
a[100]用來存放各個數位(0用來存放一共有幾位,1用來存放個位,,依次)
i=0;
{a[++i]=x % 10;
x/=10;}while (x);
a[0]=i;
㈨ 在c語言中如何表示一個三位數的各位數
三位數記為int n
建3個int變數 a b c 分別表示百位十位個位上的數字
a=n/100;
b=(n-a*100)/10;
c=(n-a*100-b*10);
例如:
#include <stdio.h>
main()
{
int a[3];
int i =0;
int j;
int numb = 123;
while(numb!=0)
{
a[i]= numb%10;
numb = numb/10;
i++;
}
for(j=0;j<i;j++)
{
printf("%d,",a[j]);
}
}
(9)c語言各位數字擴展閱讀:
C語言包含的各種控制語句僅有9種,關鍵字也只有32 個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。
㈩ C語言怎麼順序輸出各位數字啊
其實輸出的是正整數,但是你要把他當做字元串來處理,因為後面的輸出的方式就是字元串輸出的方式,所以不妨把這個連續數字的東西當做一個字元串來處理,這樣比較容易。代碼如下:
#include <stdio.h>
#include<stdlib.h>
int main()
{
char n[100];
int i;
printf("enter a number:");
i=0;
while(1)
{
n[i]=getchar();
if (n[i]=='\n')break;
printf("%s ",n[i]); //注意裡面有個空格,達到了空一格格的目的
i++;
}
}