C語言c99之習題開發練習

習題三(重復程序設計)

題目1.有一個數列:1,22,333,4444.......。請用重復結構計算其前七項之和。

畢竟是初學者,我一看到這數列便想到求其通項公式(An={(10^n ?-1)/9}*n)再求和,但并不是重復結構,也可以說是毫無編程思想吧。。。。。。。

利用重復結構的話,可以發現4444等于4,4*10+4,然后44*10+4,再重復444*10+4

如此便可以知道如何寫算法啦

#include<stdio.h>

int main(){

int a,b,i,s,n=0;

printf("請輸入需要計算前 ? 項的和|n");

scanf("%d",&n);

for(i=1;i<=n;i++)

? ? ?{

? ? ?for(a=0,b=0;a<i;a++)

? ? ? ? ? b=b*10+i;

? ? ?s+=b;}

printf("前%d項和為%d|n",n,s);

}

運行結果如下:

題目二:用重復結構打印如圖的菱形。 ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ?*

? ? ? ***

? ? ?*****

? ? *******

? ? ?*****

? ? ? ***

? ? ? ?*

第一行打印3空*,第二行打印2空***,第三行打印1空*****,第四行打印*******.......

由此可見關鍵在于用重復結構控制每一行對應的空格與星號個數。

#include<stdio.h>

void main(){

int i,j,n;

printf("請輸入數字:|n");

scanf("%d",&n);

for(i=1;i<=n;i++)//打印上三角

? ? ?{

? ? ? for(j=0;j<(n+i-1)-(2*i-1);j++)//第i行的空格數為 i行符號總數(n+i-1) 減 i行星號總數(2*i-1)

? ? ? ? ? ? printf(" ");

? ? ? for(j=0;j<2*i-1;j++)//第i行星號數為 2*i-1

? ? ? ? ? ?printf("*");

? ? ? printf("|n");//換行

? ? ?}

for(i=n-1;i>+=1;i--)//打印下三角 ?用i--而不是i++ 可使倒數第i行與第i行一樣處理

? ? ? ? ? ? ? ? ? ? ? ? ? ?//例如倒數第三行相當于第三行

? ? ?{

? ? ? for(j=0;j<(n+i-1)-(2*i-1);j++)

? ? ? ? ? ? printf(" ");

? ? ? for(j=0;j<2*i-1;j++)

? ? ? ? ? ? printf("*");

? ? ? printf("|n");

? ? ? }

}

方法二(兩個for循環):

#include<stdio.h>

int main()

{

int i,j,n;

printf("Please input a number:");

scanf("%d",&n);

for(i=1;i<=2*n-1;i++)//打印行

? ? ?{

? ? ?for(j=1;j<=2*n-1;j++)//打印列

? ? ? ? ? if(i<n)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? if(j>n-i&&j<n+i)

? ? ? ? ? ? ? ? ? ? ?printf("*");

? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? ? printf(" ");

? ? ? ? ? ? ? ? }

? ? ? ? ? else

? ? ? ? ? ? ? ? ?{

? ? ? ? ? ? ? ? ?if(j>n-(2*n-i)&&j<n+(2*n-i))

? ? ? ? ? ? ? ? ? ? ? ?printf("*");

? ? ? ? ? ? ? ? ?else

? ? ? ? ? ? ? ? ? ? ? ?printf(" ");

? ? ? ? ? ? ? ? ?}

? ? ?printf("\n");//打完一列 換行

? ? ?}

}


題目三:輸入任意一個整數,求其各位數之和及位數。

關鍵是怎么把幾個位數單獨取出來,然后賦給一個變量,讓他求和。由于并未告訴我們要求的是幾位數,因而需要用重復結構,在每次重復的時候驗證。可以想到:

一個n位數便可以被10整除n次后到0,因此只需每次驗證整除后的數是不是大于0,若是,繼續重復;否則結束。

#include<stdio.h>

int main()

{

int t=0,s,n,m=0; ? //t為各位數之和,s是位數

printf("請輸入一個整數:");

scanf("%d",&n);

do{

? ? ? m=n%10;

? ? ? n=n/10;

? ? ? s+=1;

? ? ? t+=m;

? ?}whlie(n>0);

}



題目四:有一種三位數很有意思,它等于其各位的立方和。例如:153=1^3+5^3+3^3。這種數被稱為水仙花數。用程序求出所有的三位數。

首先,明確下這種水仙花數是三位數,因而我們需要在100-999內計算,利用計算機的強大計算能力進行計算即可。。

#include<stdio.h>

int main()

{

int i,n,a,b,c;

printf("所有的水仙花數為:\n");

for(i=100;i<+999;i++)

? ? ? {

? ? ? a=i%10;

? ? ? b=i/10%10;

? ? ? c=i/100%10;

? ? ? n=a*a*a+b*b*b+c*c*c;

? ? ? if(i==n)

? ? ? ? ? ? ?printf("%d\n",i);

? ? ? }

}



題目五:輸入任意一個整數n,求出滿足關系式:1!+2!+......+m!<n的m。

一看到題目便想用do-whlie語句,來試試;

#include<stdio.h>

int main()

{

int i=1,j=1,n,link=1;

printf("Please inpur a number:\n");

scanf("%d",&n);

do{

? ? for(j=i-1;j>0;j--)//用for循環實現1!+2!+....+m!

? ? ? ? ? ?j=j*i;

? ? i++;

? ? link+=j;

? ? }while(link<n);

printf("The value of m is %d",i-1);

}

但是不知道為什么n的讀取不了,我又換了for循環試試,卻又是可以的。。。真是奇怪,還沒找到原因 /摸摸頭.jpg/


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,923評論 6 535
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,740評論 3 420
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,856評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,175評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,931評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,321評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,383評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,533評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,082評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,891評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,618評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,319評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,732評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,987評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,794評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,076評論 2 375

推薦閱讀更多精彩內容

  • 第1章 第一個C程序第2章 C語言基礎第3章 變量和數據類型第4章 順序結構程序設計第5章 條件結構程序設計第6章...
    小獅子365閱讀 10,706評論 3 71
  • C語言的學習要從基礎開始,這里是100個經典的算法-1C語言的學習要從基礎開始,這里是100個經典的 算法 題目:...
    Poison_19ce閱讀 1,162評論 0 0
  • 計算機二級C語言上機題庫(南開版) 1.m個人的成績存放在score數組中,請編寫函數fun,它的功能是:將低于平...
    MrSunbeam閱讀 6,434評論 1 42
  • 指針是C語言中廣泛使用的一種數據類型。 運用指針編程是C語言最主要的風格之一。利用指針變量可以表示各種數據結構; ...
    朱森閱讀 3,464評論 3 44
  • 數組在程序設計中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數據元素的集合稱...
    朱森閱讀 3,970評論 2 13