一道c語言數組編程題編寫程序一個整數各位數字之和
這道題的關鍵在於分離數字,分離方法可以用這種方法,比如,用119來實現分離,根據題目要結果爲1+1+9=11對吧,我們通過這樣來分離,(1)用119%10,就是119除以10的餘數是9對吧?聰明的你現在就應該發現9被分離出來了吧(2)接着分離十位數,119/10的結果只能爲整數是11對吧,再用11%10,11除以10的餘數爲1對吧?是不是又把1分離出來了(3)最後就是百位數了,11/10的結果爲1對吧,百位數也分離出來了(4)最後我們只需要吧他們相加不就完了。
分離的結束條件是當整除結果小於10時結束。
在分離過程中我們可以使用數組來存儲分離出來的數。
具體代碼如下:
立即學習“C語言免費學習筆記(深入)”;
/*方法一爲遞歸方法解答,本人覺得此方法更簡單,能理解最好*/
#include
int show(int num)
{
if(num
return num;/*遞歸出口*/
else
return num%10+show(num/10);
}
void main()
{
int num,sum;
printf("請輸入一個整數:");
scanf("%d",&num);
sum=show(num);
printf("各位數之和的結果爲:%d",sum);
}
/*方法二用數組做的,做法可能過於複雜,不要建議,有好的方法大家分享*/
#include
void main()
{
int value[10];
int num;
printf("請輸入一個整數:");
scanf("%d",&num);
while(num=10000)
{
printf("此代碼暫時只支持10000以下的4位數的計算,輸入整數無效!請重新輸入:");
scanf("%d",&num);
}
if(num>=0&num
printf("結果爲:%d",num);
else if(num>=10&num
{
value[0]=num%10;
value[1]=num/10;
printf("結果爲:%d",value[0]+value[1]);
}
else if(num>=100&num
{
value[0]=num%10; /*分離個位數*/
value[1]=num/10; /*得出新的待分離數*/
value[2]=value[1]%10; /*分離出十位數*/
value[3]=value[1]/10; /*得到百位數*/
printf("結果爲:%d",value[0]+value[2]+value[3]);
}
else
{
value[0]=num%10; /*分離個位數*/
value[1]=num/10; /*得出新的待分離數*/
value[2]=value[1]%10; /*分離出十位數*/
value[3]=value[1]/10; /*得出新的待分離數*/
value[4]=value[3]%10; /*得出百位數*/
value[5]=value[3]/10; /*得出千位數*/
printf("結果爲:%d",value[0]+value[2]+value[4]+value[5]);
}
}
一道C語言數組的題 C高手幫忙
#include
main()
{ int a[ ]={1,2,3,4,5,6,7,8,9,0},*p; //定義了一個10個元素的數組,每個元素int類型,還定義了一個p指針.
p=a; //p指針指向數組a
printf (“%x”,p); //輸出把p的地址以十六進制顯示,
printf (“%x”,p+9);//p+9表示移動9個int類型的距離的地址之後換成十六進制顯示,
}
如果你的確想打印地址,使用%p 格式就行了,默認是16進製表示,效果和%x一樣,但是省去了部分操作。
若一個int類型的變量佔2個字節,
第一個printf語句輸出的是194,則第二個printf語句的輸出結果是
這個題的意思是問你第一個元素到最後一個元素總共佔了多少個字節
0x194 +2* 9=
自己算吧,懶得換算了。
194表示十六進制的數組首地址,一個Int類型佔用2個字節,那麼移動9個元素的距離就是2*9個字節,然後顯示地址就是了。
這個深入到內存裏類型的表示格式,你記住+1表示移動一個元素類型的距離就行了。
幾道簡單C語言編程題關於數組的感謝 !
第一題:
#include "stdio.h"
void main()
{int a[10];
int i,max;
for(i=0;i
scanf("%d,",&a[i]);
max=a[0];
for(i=1;i
{
if(max
max=a[i];
}
printf("最大值爲:%d",max);
}
第二題:
#include "stdio.h"
void main()
{
int i,a[10];
long int sum; /*sum 是總分*/
float average; /*平均值*/
for(i=0;i
{
printf("請輸入第%d學生的成績:",(i+1));
scanf("%d",a[i]);
printf("");
}
for(i=0;i
sum=sum+a[i];
average=sum/10.0;
printf("10位同學的平均成績是:%f",average);
}
第三題:
#include "stdio.h"
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int b[10]={2,4,6,8,10,12,14,16,18,20};
int c[10];
for(i=0;i
c[i]=a[i]+b[i];
for(i=0;i
printf("%d,",c[i]);
}
第四題:
#include "stdio.h"
{
int i,a[100];
int cx;
for(i=1;i
{
a[i]=i+2;
}
scanf("輸入你要查詢的數值:%d",cx);
for(i=0;i
if(cx==a[i])
{
printf("第%d個數是你要查詢的數值!");
break;
}
else
printf("你輸入的數值不在這個數組中");
}
以上就是用C語言編寫程序,計算一個整數各位數字的和的詳細內容,更多請關注本站其它相關文章!