生活随笔
收集整理的這篇文章主要介紹了
C语言编程经典100 例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【程序 1】 題目:有 1、2、3、4 個數字,能組成多少個互不相同且無重復數字的三位數?都是多少? 1.程序分析:可填在百位、十位、個位的數字都是 1、2、3、4。組成所有的排列后再去掉不滿足條件的排列。 2.程序源代碼:
# include <stdio.h>
int main ( )
{ int i
, j
, k
; for ( i
= 1 ; i
< 5 ; i
++ ) for ( j
= 1 ; j
< 5 ; j
++ ) for ( k
= 1 ; k
< 5 ; k
++ ) { if ( i
!= j
&& i
!= k
&& j
!= k
) printf ( "%d%d%d\n" , i
, j
, k
) ; }
}
【程序 2】 題目:企業發放的獎金根據利潤提成。利潤(I)低于或等于 10萬元時,獎金可提 10%;利潤高于 10 萬元,低于 20 萬元時,低于 10 萬元的部分按 10%提成,高于 10 萬元的部分,可可提成 7.5%;20 萬到 40 萬之間時,高于 20 萬元的部分,可提成 5%;40 萬到 60 萬之間時高于40 萬元的部分,可提成 3%;60 萬到 100 萬之間時,高 于 60 萬元的部分,可提成 1.5%,高于100 萬元時,超過 100 萬元的部分按 1%提成,從鍵盤輸入當月利潤 I,求應發放獎金總數? 1.程序分析:請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。 2.程序源代碼:
# include <stdio.h>
int main ( )
{ long int i
; int bonus1
, bonus2
, bonus4
, bonus6
, bonus10
, bonus
; scanf ( "%ld" , & i
) ; bonus1
= 100000 * 0.1 ; bonus2
= bonus1
+ 100000 * 0.75 ; bonus4
= bonus2
+ 200000 * 0.5 ; bonus6
= bonus4
+ 200000 * 0.3 ; bonus10
= bonus6
+ 400000 * 0.15 ; if ( i
<= 100000 ) bonus
= i
* 0.1 ; else if ( i
<= 200000 ) bonus
= bonus1
+ ( i
- 100000 ) * 0.075 ; else if ( i
<= 400000 ) bonus
= bonus2
+ ( i
- 200000 ) * 0.05 ; else if ( i
<= 600000 ) bonus
= bonus4
+ ( i
- 400000 ) * 0.03 ; else if ( i
<= 1000000 ) bonus
= bonus6
+ ( i
- 600000 ) * 0.015 ; else bonus
= bonus10
+ ( i
- 1000000 ) * 0.01 ; printf ( "bonus=%d" , bonus
) ;
}
【程序 3】 題目:一個整數,它加上 100 后是一個完全平方數,再加上 168又是一個完全平方數,請問該數是多少? 1.程序分析:在 10 萬以內判斷,先將該數加上 100 后再開方,再將該數加上 268 后再開方,如果開方后的結果滿足如下條件,即是結果。請看具體分析: 2.程序源代碼:
# include <stdio.h>
# include <math.h>
int main ( )
{ long int i
, x
, y
, z
; for ( i
= 1 ; i
< 100000 ; i
++ ) { x
= sqrt ( i
+ 100 ) ; y
= sqrt ( i
+ 268 ) ; if ( x
* x
== i
+ 100 && y
* y
== i
+ 268 ) printf ( "\n%ld\n" , i
) ; }
}
【程序 4】 題目:輸入某年某月某日,判斷這一天是這一年的第幾天? 1.程序分析:以 3 月 5 日為例,應該先把前兩個月的加起來,然后再加上 5 天即本年的第幾天,特殊情況,閏年且輸入月份大于 3 時需考慮多加一天。 2.程序源代碼:
# include <stdio.h>
int main ( )
{ int day
, month
, year
, sum
, leap
; printf ( "\nplease input year,month,day\n" ) ; scanf ( "%d,%d,%d" , & year
, & month
, & day
) ; switch ( month
) { case 1 : sum
= 0 ; break ; case 2 : sum
= 31 ; break ; case 3 : sum
= 59 ; break ; case 4 : sum
= 90 ; break ; case 5 : sum
= 120 ; break ; case 6 : sum
= 151 ; break ; case 7 : sum
= 181 ; break ; case 8 : sum
= 212 ; break ; case 9 : sum
= 243 ; break ; case 10 : sum
= 273 ; break ; case 11 : sum
= 304 ; break ; case 12 : sum
= 334 ; break ; default : printf ( "data error" ) ; break ; } sum
= sum
+ day
; if ( year
% 400 == 0 || ( year
% 4 == 0 && year
% 100 != 0 ) ) leap
= 1 ; else leap
= 0 ; if ( leap
== 1 && month
> 2 ) sum
++ ; printf ( "It is the %dth day." , sum
) ;
}
【程序 5】 題目:輸入三個整數 x,y,z,請把這三個數由小到大輸出。 1.程序分析:我們想辦法把最小的數放到 x 上,先將 x 與 y 進行比較,如果 x>y 則將 x 與 y 的值進行交換,然后再用 x 與 z 進行比較,如果 x>z 則將 x 與 z 的值進行交換,這樣能使 x 最小。 2.程序源代碼:
# include <stdio.h>
int main ( )
{ int x
, y
, z
, t
; scanf ( "%d%d%d" , & x
, & y
, & z
) ; if ( x
> y
) { t
= x
; x
= y
; y
= t
; } if ( x
> z
) { t
= z
; z
= x
; x
= t
; } if ( y
> z
) { t
= y
; y
= z
; z
= t
; } printf ( "small to big: %d %d %d\n" , x
, y
, z
) ;
}
【程序 6】 題目:用號輸出字母 C 的圖案。 1.程序分析:可先用’’號在紙上寫出字母 C,再分行輸出。 2.程序源代碼:
# include <stdio.h>
int main ( )
{ printf ( "Hello C-world!\n" ) ; printf ( " ****\n" ) ; printf ( " *\n" ) ; printf ( " * \n" ) ; printf ( " ****\n" ) ;
}
【程序 7】 題目:輸出特殊圖案,請在 c 環境中運行,看一看,Very Beautiful! 1.程序分析:字符共有 256 個。不同字符,圖形不一樣。 2.程序源代碼:
# include <stdio.h>
int main ( )
{ char a
= 176 , b
= 219 ; printf ( "%c%c%c%c%c\n" , b
, a
, a
, a
, b
) ; printf ( "%c%c%c%c%c\n" , a
, b
, a
, b
, a
) ; printf ( "%c%c%c%c%c\n" , a
, a
, b
, a
, a
) ; printf ( "%c%c%c%c%c\n" , a
, b
, a
, b
, a
) ; printf ( "%c%c%c%c%c\n" , b
, a
, a
, a
, b
) ;
}
【程序 8】 題目:輸出 9*9 口訣。 1.程序分析:分行與列考慮,共 9 行 9 列,i 控制行,j 控制列。 2.程序源代碼:
# include <stdio.h>
int main ( )
{ int i
, j
, result
; printf ( "\n" ) ; for ( i
= 1 ; i
< 10 ; i
++ ) { for ( j
= 1 ; j
< 10 ; j
++ ) { result
= i
* j
; printf ( "%d*%d=%-3d" , i
, j
, result
) ; } printf ( "\n" ) ; }
}
【程序 9】 題目:要求輸出國際象棋棋盤。 1.程序分析:用 i 控制行,j 來控制列,根據 i+j 的和的變化來控制輸出黑方格,還是白方格。 2.程序源代碼:
# include <stdio.h>
int main ( )
{ int i
, j
; for ( i
= 0 ; i
< 8 ; i
++ ) { for ( j
= 0 ; j
< 8 ; j
++ ) if ( ( i
+ j
) % 2 == 0 ) printf ( "%c%c" , 219 , 219 ) ; else printf ( " " ) ; printf ( "\n" ) ; }
}
【程序 10】 題目:打印樓梯,同時在樓梯上方打印兩個笑臉。 1.程序分析:用 i 控制行,j 來控制列,j 根據 i 的變化來控制輸出黑方格的個數。 2.程序源代碼:
# include <stdio.h>
int main ( )
{ int i
, j
; printf ( "\1\1\n" ) ; for ( i
= 1 ; i
< 11 ; i
++ ) { for ( j
= 1 ; j
<= i
; j
++ ) printf ( "%c%c" , 219 , 219 ) ; printf ( "\n" ) ; }
}
【程序 11】 題目:古典問題:有一對兔子,從出生后第 3 個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少? 1.程序分析: 兔子的規律為數列 1,1,2,3,5,8,13,21… 2.程序源代碼:
# include <stdio.h>
int main ( )
{ long f1
, f2
; int i
; f1
= f2
= 1 ; for ( i
= 1 ; i
<= 20 ; i
++ ) { printf ( "%12ld %12ld" , f1
, f2
) ; if ( i
% 2 == 0 ) printf ( "\n" ) ; f1
= f1
+ f2
; f2
= f1
+ f2
; }
}
【程序 12】 題目:判斷 101-200 之間有多少個素數,并輸出所有素數。 1.程序分析:判斷素數的方法:用一個數分別去除 2 到 sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。 2.程序源代碼:
# include <stdio.h>
# include <math.h>
int main ( )
{ int m
, i
, k
, h
= 0 , leap
= 1 ; printf ( "\n" ) ; for ( m
= 101 ; m
<= 200 ; m
++ ) { k
= sqrt ( m
+ 1 ) ; for ( i
= 2 ; i
<= k
; i
++ ) if ( m
% i
== 0 ) { leap
= 0 ; break ; } if ( leap
) { printf ( "%-4d" , m
) ; h
++ ; if ( h
% 10 == 0 ) printf ( "\n" ) ; } leap
= 1 ; } printf ( "\nThe total is %d" , h
) ;
}
【程序 13】 題目:打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等于該數本身。例如:153 是一個"水仙花數",因為 153=1 的三次方+5 的三次方+3 的三次方。 1.程序分析:利用 for 循環控制 100-999 個數,每個數分解出個位,十位,百位。 2.程序源代碼:
# include <stdio.h>
int main ( )
{ int i
, j
, k
, n
; printf ( "’water flower’number is:" ) ; for ( n
= 100 ; n
< 1000 ; n
++ ) { i
= n
/ 100 ; j
= n
/ 10 % 10 ; k
= n
% 10 ; if ( i
* 100 + j
* 10 + k
== i
* i
* i
+ j
* j
* j
+ k
* k
* k
) { printf ( "%-5d" , n
) ; } } printf ( "\n" ) ;
}
總結
以上是生活随笔 為你收集整理的C语言编程经典100 例 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。