設一個數(shù)為n,則在C語言中其個位、十位、百位、千位依次這樣計算:n/1%10,n/10%10,n/100%10,n/1000%10
創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都網(wǎng)站制作、網(wǎng)站建設、外貿(mào)網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元襄垣做網(wǎng)站,已為上家服務,為襄垣各地企業(yè)和個人服務,聯(lián)系電話:13518219792
代碼如下:
#includestdio.h
int main(){
int n = 123456;
int unitPlace = n / 1 % 10;
int tenPlace = n / 10 % 10;
int hundredPlace = n / 100 % 10;
int thousandPlace = n / 1000 % 10;
printf("個位:%d\n十位:%d\n百位:%d\n千位:%d\n", unitPlace, tenPlace, hundredPlace, thousandPlace);
getchar();
return 0;
}
運行結果如圖:
擴展資料
C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括號、賦值、強制類型轉(zhuǎn)換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現(xiàn)在其它高級語言中難以實現(xiàn)的運算。
參考資料:百度百科--C語言
#includestdio.h
#define?N?1001
void?bubblesort(int?*list,int?len)?//冒泡排序
{
int?i,j;
int?temp;
for(i=0;ilen?-?1;i++)
for(j=0;jlen-i?-?1;j++)?
{
if(list[j+1]list[j])
{
temp=list[j+1];
list[j+1]=list[j];
list[j]=temp;
}
}
}
int?main(){
int?num;
int?tar[N];
scanf("%d",?num);
while(num?!=?0){
for(int?i?=?0;?i?num;?i++){
scanf("%d",?tar[i]);
}
bubblesort(tar,?num);
if(num?%?2?==?0){
printf("%lg\n",(tar[num/2]?+?tar[num/2?-?1])?/?2.0);?
}else{
printf("%lg\n",?tar[num/2]*1.0);
}
scanf("%d",num);
}
return?0;
}
#includestdio.h
#define N 4
float mid(int *a)
{
int i,j,t;
float middle;
for(i=0;iN;i++)//對數(shù)組從小到大排序
for(j=i+1;jN;j++)
if(a[j]a[i])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("排序后數(shù)組:\n");
for(i=0;iN;i++)
printf("%d ",a[i]);
printf("\n");
if(N%2==1)//求中位數(shù)
middle=a[N/2];
else
middle=(a[N/2]+a[N/2-1])/2.0;
return middle;
}
void main()
{
int a[N],i;
float middle;
printf("請輸入%d個數(shù):\n",N);
for(i=0;iN;i++)
scanf("%d",a[i]);
middle=mid(a);
printf("中位數(shù)是:%f\n",middle);
}
#include stdio.h
void swap(int *p,int *q) {
int t;
t=*p;
*p=*q;
*q=t;
}
void sort(int a[],int n) {
int i,j,temp;
for(i=0;in-1;i++) {
for(j=0;jn-i-1;j++) {
if(a[j]a[j+1])
swap(a[j],a[j+1]);
}
}
}
int main() {
int a[] = {6,3,8,5,1};
int n = 5;
int sum,i;
sort(a,n);
n = (n+1) / 2 - 1; // -1 as array indexing in C starts from 0
printf("Median = %d ", a[n]);
return 0;
}
A.length是數(shù)組data的長度,等于5,B.length=3,mid=A.length+B.length/2=5+3/2=6
查找中位數(shù)if (k = mid )把mid 的值賦給k,此時k =6就執(zhí)行return A.data[i ]整個函數(shù)調(diào)用就結束。
數(shù)組排序可以不用指針。你把數(shù)組定義成全局變量,比如說a[10001];然后調(diào)用我給你的快排程序就行了,這個程序可以背下來,很有用的。
void
qs(int
L,int
R)
{
int
i=L,j=R,mid=a[(L+R)/2],t;
while(ij)
{
while(a[i]mid)
++i;
while(a[j]mid)
--j;
if(i=j)
{
t=a[i];
a[i]=a[j];
a[j]=t;
++i;
--j;
}
}
if(iR)
qs(i,R);
if(Lj)
qs(L,j);
}
排好序之后找中位數(shù)就好辦了。
至于眾數(shù),我覺得最好的方法是用bfs。但這個對你來說難度有點大,我就給你寫一個hash表吧。還用上面的那個數(shù)組,且假定數(shù)組a中的最大值不超過10000,若超過,你把下面這個hash數(shù)組的范圍擴大就行了。
另外,設a中有n個元素,a從1開始計數(shù)(若從0開始,你改一下就好了)
int
hash[10001]={0};
int
i,Max=0;
for(i=1;
i=n;
++i)
{
++hash[a[i]];
if(hash[a[i]]hash[Max])
Max=a[i];
}
最后輸出Max就好了
剛t415422663倒是提醒我了,如果要判斷眾數(shù)有多個,我可以把上面的程序稍改一下
int
hash[10001]={0};
int
i,Max=-1;/*注意,這里把Max賦值為-1是為了防止數(shù)組a的元素個數(shù)為0時所有數(shù)據(jù)都被輸出*/
for(i=1;
i=n;
++i)
{
++hash[a[i]];
if(hash[a[i]]Max])
Max=hash[a[i]];
}
//10000是數(shù)組a中可能出現(xiàn)的最大值,這個你可以自己改的
for(i=1;
i=10000;
++i)
if(hash[i]==Max)
printf("%d\n",i);