㈠ c語言編程如何將一位正整數,從高位到低位分開輸出。如1235,輸出:1,2,3,5。
把 正整數 當字元串處理就行了。 char n[20]; scanf("%s",n); for(i ~ n[i]!='\0') printf("%c ", n[i]);
㈡ 在C語言中,怎麼分離正整數的各位數字
自己主要要明白怎樣將小學的數學知識轉換為計算機的知識。
除10求余,就是個位數,求商就是沒有個位數的數,然後重復進行不就行了。所以程序段為:
a是輸入的數
do
printf("%d\n",a%10); //輸出余數
a=a/10; //求商
while(a!=0); //a不等於0表示還沒有輸出完。
㈢ 在C語言中,怎麼分離正整數的各位數字
可以利用求模運算得到數據的最低位,然後將數據除以10,再重復,直到數據為0,只不過得到的各位是倒序的
x=1234; while ( x ) { printf("%d ",x%10); x/=10; } printf("\n");
這樣會輸出4 3 2 1
㈣ C語言 整數拆分問題
比如一個三位數 123
int a,b,c;
c = 123%10 =3
a=123/100 = 1
b = 123/10%10 =2
這樣一個整數123,就拆分成 1,2,3 三個數了。
㈤ c語言如何將一個正整數分解成質因數
#include<stdio.h>
voidmain()
{
inta,n;
scanf("%d",&n);
printf("n=");
for(a=2;a<=n;a++)
if(n%a==0)
{n/=a;
printf("%d",a);
printf("*");
a=1;}
}
輸入編碼即可。
㈥ c語言題 整數拆分
程序的邏輯沒有發現問題,只是最後
一條輸出語句可能有問題,
因為s是long long類型,所以應該把
%d改為%lld再試試。
㈦ c語言,輸入一個正整數,將這個正整數分解質因數
具體如下:
#include<stdio.h>
void main()
{int i,n;
printf("input the n:");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<n;)
{if(n%i==0)
{printf("%d*",i);
n=n/i;}
else i++;
}printf("%d",n);
}
㈧ 怎麼用C語言將一個正整數分解質因數.例如,輸入90,輸出90=2*3*3*5
#include "stdio.h"
void main()
{int m,i,j=0;
printf("please input the number:\n");
scanf("%d",&m);
for(i=2;i<=m;i++)
{while(m%i==0)
{j++;
if(j==1) printf("%d=%d",m,i);
else printf("*%d",i);
m=m/i;
}
}
}
沒有用中文,怕你用的是TC,那就會出現亂碼,這程序關鍵在於尋找質因數和輸出格式的控制。
㈨ C語言編程,用遞歸法將一個正整數n的每個數字都拆分出來,數字前後都標記「*」。
給你個代碼:
#include<stdio.h>
voidf(intn)
{
if(n)
{
if(n<10)
{
printf("*%d*",n);
return;
}
f(n/10);
printf("%d*",n%10);
}
}
intmain()
{
intn;
printf("輸入一個正整數:");
scanf("%d",&n);
f(n);
return0;
}
㈩ 如何用C語言拆分整數
將一個整數的各個位分離出來的最簡單方法就是模10,取個位數,直到該變為0。
參考代碼:
#include <stdio.h>
void main()
{
int n=0;
scanf("%d", &n );
do {
printf("%d\n", n%10 ); //每次輸出個位
n/=10 ; //縮小10倍,去除原來的個位。
}while(n);
}
但這整拆分的特點是從後向前輸出每一位數。
如果僅是為了輸出,還想正向輸出每一位數,則可用遞歸函數來解決。(也可以實現逆向輸出)
參考代碼:
#include <stdio.h>
void split_int( int n )
{
if ( n>0 )
{
//printf("%d\n", n%10 );//逆向輸出,放開這里,關閉下面的printf().即:先輸出當前個位,再去高位的數
split_int( n/10 );//先去輸出高位的數
printf("%d\n", n%10 ); //再輸出當前的個位數
}
}
void main()
{
int n;
scanf("%d", &n);
split_int(n);
}
如果想把分離開的數據存儲到數組中,則最簡單的方法是將整數用sprintf()存儲到字元數組中,然後,遍歷數組,逐位取出。
參考代碼:
#include <stdio.h>
void main()
{
int n,i;
char str[20];
scanf("%d", &n);
sprintf(str,"%d", n);
for( i=0;str[i];i++ ) //正向輸出
printf("%c\n", str[i] );
for( i--;i>=0;i-- ) //逆向輸出
printf("%c\n", str[i] );
}