經典國二c語言程式段

2022-08-20 00:06:04 字數 3231 閱讀 6175

1、 累加:

int i, sum=0;

for(i=1; i<=100; i++) sum+=i;

printf("sum=%d\n", sum);

2、 累乘(階乘):

int i, s=1, n;

scanf("%d", &n);

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

printf("s=%d\n", s);

3、整型常量的個位、十位、百位上數字的表示方法:

現定義乙個整形常量x,則個位:x%10; 十位:(x/10)%10; 百位:(x/10^2)%10;

4、 四捨五入(對乙個輸入的雙精度數保留3位小數):

double x;

scanf("%lf", &x);

x*=1000;

x+=0.5;

x=(int)x;

x/=1000;

printf("x=%lf", x);

5、 變數值交換:

(1)輸入三個整數a、b、c, 然後把a的值給b, 把b的值給c, 把c的值給a

int a, b, c, t;

scanf("%d%d%d", &a, &b, &c);

printf("a=%d,b=%d,c=%d", a, b, c);

t=a; a=c; c=b; b=t;

printf("a=%d,b=%d,c=%d", a ,b, c);

(2)位址值傳遞

注意:下面兩種情況均不能將主函式中的變數值對調

1) void fun(int *a, int *b)

int *k;

k=a; a=b; b=k;

理由簡述:指標變數作為函式引數也要遵循單向的值傳遞方式,所以交換指標形參中的位址值不能改變對應的實參。

2) void fun(int *a, int *b)

int *k;

p=*a; *a=*b; *b=*p;

理由簡述:指標k是無向指標,「*p=*a」等等語句會出現錯誤。

正確的演算法如下:

void fun(int *a, int *b)

6、 輸入三個數a、b、c,選出最大者和最小者:

double a, b, c, max, min;

scanf(「%lf%lf%lf」, &a, &b, &c);

max=a, min=b;

if( aif(c>max) max=c;

if(cprintf("max=%lf,min=%lf", max, min);

7、 圖形

*int i, j;

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

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

putchar('\n');

8、 斐波那契數列:

(1)給定項數n的演算法

int a=1, b=1, c, i;

printf("%3d%3d", a, b);

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

(2)給定上界數m的演算法

int a=1, b=1, c;

printf("%3d", a);

do while(c

9、 素數(將0~m之間為素數的元素依次存放在陣列a[ ]中):

int i, j, t, a[100], n=0;

for(i=2; i

10、 閏年(公元1600~2000的「能被4整除且不能被100整除,或者能被400整除」的年號):

int i;

for(i=1600; i<=2000; i++)

if(i%4= =0 && i%100!=0 || i%400= =0) printf("%3d", i);

11、小寫字母變大寫字母:

char c;

if(c>='a' && c<='z') c=c-32;

putchar(c);

12、計數(統計陣列中0~9的個數):

int i, a[100], c[10]=;

for(i=0; i<100; i++) a=random(10);

for(i=0; i<10; i++) c[a]++;

for(i=0; i<10; i++) printf("%d : %d", i, c);

13、選擇法排序:

(1)一維陣列(從小到大)

int i, j, k, t, a[10];

for(i=0; i<10; i++) a=random(100);

for(i=0; i<9; i++)

for(j=i+1; j<10; j++)

if(a[j]for(i=0; i<10; i++) printf("%3d", a);

(2)選出二維陣列中的最大值

int i, j, max, a[5][5];

for(i=0; i<5; i++)

for(j=0; j<5; j+) a[j]=random(100);

max=a[0][0];

for(i=0; i<5; i++)

for(j=0; j<5; j++)

if(a[j]>max) max=a[j];

printf("%d", max);

14、楊輝三角形(只需列印7行):

int a[7][7], i, j;

for(i=0; i<7; i++)

for(j=0; j if(j= =0 || j= =i) a[j]=1;

else a[j]=a[j-1]+a[j];

(1)直角形式

for(i=0; i<7; i++)

(2)金字塔形式

for(i=0; i<7; i++)

15、字串顛倒:

void fun(char str)

16、刪除字串內部空格(空格用星號代替):

(1)只刪除前導空格,保留中間和尾部空格

void fun(char *a) /*將主函式的字串首位址傳遞給指標變數a*/

main()

{char a[100], b[100], *p;

gets(a);

p=a; /*指標p指向串首*/

while(*p!=0)

p++; /*指標p指向串結束標記*/

p--; /*指標p指向串末字元*/

while(*p= ='*')

p--; /*指標p指向由串尾向串首方向的第乙個非星號字元*/

C語言經典程式

1 求1 2 3 100。迴圈 答案 include void main 2 求1 2 3 10。迴圈 答案void main printf d j return 0 3 輸入三個數字,輸出他們的最大值。if 答案 include void main int max int x,int y,int ...

C語言經典程式

1 輸出9 9口訣。共9行9列,i控制行,j控制列。include main printf n 每一行後換行 2 古典問題 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?兔子的規律為數列1,1,2,3,5,8,13...

C語言程式開發經典例項

八十個經典c語言程式 程式1 題目 有1 2 3 4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?1.程式分析 可填在百位 十位 個位的數字都是1 2 3 4。組成所有的排列後再去掉不滿足條件的排列。2.程式源 main 程式2 題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於1...