1.題目:
定義一個判斷素數的函數isprime(int n),利用該函數輸出1000以內的所有素數,每行10個,最后輸出一共有多少個素數。(每列對齊)
代碼:
#include <stdio.h> int isprime(int n); int main() { int i,a=0,b=2,c=1; for(i=2;i<=1000;i++) { if(isprime(i)) { printf("%3d",i); a++; if(b%10==0) printf("\n"); } } printf("%d\n",a); } int isprime(int n) { int b,c=1; for(;c<=n-1;c++) { if(n%b==0) { b=0;break; } } return 0; }
運行結果:
2.題目:
.求兩個正整數的最大公約數和最小公倍數。用一個函數gcd(int a,int b)求最大公約數,另一個函數lcm(int a,int b)根據求出的最大公約數求最小公倍數。
代碼:
#include <stdio.h> int gcd(int a,int b); int lcm(int a,int b); int main() { int a,b,c,d,e; printf(" 請輸入兩個整數,用,隔開\n"); scanf("%d,%d",&a,&b); while(a<=0||b<=0) { printf("輸入錯誤\n"); scanf("%d,%d",&a,&b); } c=gcd(a,b); d=lcm(a,b); printf("最大公約數%d,最小公倍數%d\n",c,d); } int gcd(int a,int b) { int c,d,e; if(b>a) { c=b; b=a; a=c; } while(b!=0) { e=a%b; a=b;b=e; } return a; } int lcm(int a,int b) { int i; i=a*b/gcd(a,b); return i; }
運行結果:
3.題目:
編寫一個函數fun(double x)求表達式x2-5x+4的值,x作為參數傳給函數。在主函數中調用該函數求下列式子的值:
y1= 22-5*2+4
y2= (x+15)2-5*(x+15)+4
y3= sin2x-5*sinx+4
求y3用數學函數 sin(x) 頭文件math.h
求解y2和y3時需要輸入x的值。
樣例:
y1=-2, x=0.5時,y2=166.75,y3=1.832721
代碼:
#include <stdio.h> #include <math.h> double fun(double x); int main() { double x,y1,y2,y3; { printf("x*x-5*x+4\n輸入x的值\n"); scanf("%lf",&x); y1=fun(x); y2=fun(x+15); y3=fun(sin(x));
printf("%.2lf,%.2lf,%.2lf\n",y1,y2,y3); } double fun(double x) { double y; y=x*x-5*x+4; return y; }
運行結果:
附加題:
火柴棍問題。
代碼:
#include<stdio.h> int fun(int a); int fun(int a) { int b; switch(a) { case 0: case 6: case 9:b=6; break; case 2: case 3: case 5:b=5; break; case 1:b=2; break; case 4:b=4; break; case 7:b=3; break; case 8:b=7; break; } return b; } int main() { int m,n,z; for(m=0;m<=9;m++) for(n=0;n<=9;n++) { z=m+n; if(z>9) { break; } else if(fun(m)+fun(n)+fun(z)==12) { printf("%d+%d=%d\n",m,n,z); } } return 0; }
運行結果:
實驗總結:
1.注意自己定義的變量;
2.注意定義函數;
3.printf前后沒有{};
4.學會簡化程序;
5.注意 int gcd(int a,int b);
int lcm(int a,int b);
函數的用法。
知識點總結:
1.標識符:字母、下划線、數字:
2.clrscr() 清屏;
3.大 變 小:strwr;小 變 大 :strupr:
4.函數無返回值,單獨作為一個函數調用語句;
有返回值時,可放到一個賦值表達式語句;
還可放到一個函數調用語句中,作為另一個函數的參數;
5.代碼的優化處理。