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...