1. 程式人生 > 其它 >碼圖系統期末複習資料

碼圖系統期末複習資料

5.實現指定函式swap
#include<stdio.h>
void swap(int*array,int n)
{
	int mid;
	if(array!=NULL&&n>0)
	{
		mid=array[0];
	    array[0]=array[n-1];
		array[n-1]=mid;
	}
		else
			printf("error");
}
int main()
{
	void swap(int*array,int n);
		int a[5],i;
	for(i=0;i<5;i++)
		scanf("%d"
,&a[i]); swap(a,5); return 0; } 7. 實現指定函式printSize #include<stdio.h> void printSize(int * first,int * last) { if(first==NULL||last==NULL||last<first) printf("error"); else { int z=last-first+1; int a=0,i; for(i=0;i<z;i++) a=a+sizeof(*first); first++
; printf("%d,%d\n",z,a); } } 8.swap #include<stdio.h> struct Person { int age; int height; }; void swap(Person * array,int n); void swap(Person * array,int n) { if(array==NULL||n<1) {printf("error");} else { int a; a=array[0].height;array[0].height=
array[n-1].height;array[n-1].height=a; } } 15.求最小公倍數和最大公約數 #include<stdio.h> int main() { int x,y,k,max ; scanf("%d %d",&x,&y); if(x>=y) {max=x; } else {max=y; } for(k=max;;k--){ if(x%k==0&&y%k==0) break; } printf("%d,%d",k,x*y/k); return 0; } 16.求π的值 #include<stdio.h> int main() { double b,n,a,c; a=c=1.0; n=0; scanf("%lf",&b); while(n>=0) { n=n+a; if((a*2)<b) break; a=a*c/(2*c+1); c++; } printf("%lf",n*2); return 0; } 18.素數 #include<stdio.h> #include<math.h> int main() { int a,b; scanf("%d",&b); if(b<=3) { printf("error"); scanf("%d",&b); } for(a=2;a<b;a++) if(b%a==0) printf("no"); else printf("yes"); return 0; 19.1-n的階乘之和 #include<stdio.h> int main(){ int n,m,t; m=1,t=0; scanf("%d",&n); if(n<1||n>10){ printf("error"); } else{ for(int i=1;i<=n;i++){ m=m*i; t=t+m; } printf("%d\n",t); } return 0; } 35.insert #include <stdio.h> #include <string.h> void insert(char * s1,char * s2, int n) { char a[255]; int i, j, k, len1, len2; if(n<0 || s1==NULL || s2==NULL) { printf("error\n"); return; } len1 = 0; while(s1[len1] != ' ') { len1++; } len2 = 0; while(s2[len2] != ' ') { len2++; } if(n>len1) { printf("error\n"); return; } for(i=0; i<n; i++) { a[i] = s1[i]; } for(j=0; j<len2; j++) { a[n+j] = s2[j]; } for(j=i; j<len1; j++) { a[len2+j] = s1[j]; } for(k=0; k<len1+len2; k++) { s1[k] = a[k]; } s1[k] = ' '; k++; for(;k<strlen(s1); k++) { s1[k] = 0; } } 36.del #include<stdio.h> void del(char * s,int n,int len) { if(n<0||s==NULL||len<0) { printf("error"); return; } int i,j; for(i=0;i<n;i++) if(s[i]==' ') { printf("error"); return; } for(j=n;j<n+len;j++) if(s[j]==' ') { printf("error"); return; } for(i=n;s[i+len]!=' ';i++) s[i]=s[i+len]; for(j=i;j<i+len;j++) s[j]=' '; } 37.刪除字串中連續相同字元 #include<stdio.h> int main(){ char a[50];char a[50]char*p=a;gets(a)while(*p!=) char *p=a; gets(a); while(*p!='\0'){ if(*p==*(p+1)&&!((*p>='0'&&*p<='9')||(*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z'))){ p++; } else{ printf("%c",*p);%c,*p p++; } } return 0; } 40.逆序 #include<stdio.h> void * reversememcpy ( void * destination, const void * source, int num ) { char *des=(char *)destination; char *sou=(char *)source; int i; if (num<0 || source==0|| destination==0) { printf("error");return 0;} if(((char *)destination+num>=(char *)source) && (char *)destination<=(char *)source) { printf("error");return 0;} if(((char *)destination-num<=(char *)source) && (char *)destination>=(char *)source) { printf("error");return 0;} for (i=0;num>0;i++) { *((char *)destination+i)=*((char *)source+num-1);num--; } return (destination);y } 41.對結構體進行排序 #include<stdio.h> struct Person{ int no; int age; int height; }temp; void sort(Person * array,int n){ int i=0,j=0; if(n<=0||array==NULL){ printf("error"); } else{ for(i=0;i<n-1;i++){ for(j=0;j<n-1-i;j++){ if(array[j].no>array[j+1].no){ temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } else { if(array[j].no==array[j+1].no&&array[j].age>array[j+1].age){ temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } else{ if(array[j].age==array[j+1].age&&array[j].height>array[j+1].height){ temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } } } } } } } 48.氣泡排序 #include<stdio.h> int main(void) { int a[10],i,j,t; for(i=0;i<10;i++) scanf("%d",&a[i]); for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } for(i=0;i<10;i++) printf("%d,",a[i]); printf(" "); } 50.顛倒輸出 #include<stdio.h> void main() { char c,s[50]; int i,j=0; while((s[j++]=getchar())!='\n'); for(i=0,j-=2;i<j;i++,j--) { c=s[j]; s[j]=s[i]; s[i]=c; } for(i=0;s[i]!='\n';i++) printf("%c",s[i]); } 52.將輸入字串變為大寫 #include<stdio.h> #include<string.h> int main() { char a[20]; char *p=a; gets(a); while(*p!='\0'){ if(*p>='a'&&*p<='z'){ *p=*p-32; printf("%c",*p); p++; } else{ printf("%c",*p); p++; } } printf("\n"); return 0; } 53.實現氣泡排序的函式 void bubbleSort(int data[50],int n) { int a,b,c; for(a=0;a<50;a++) { for(b=a+1;b<50;b++) { if(data[a]<data[b]) { c=data[a]; data[a]=data[b]; data[b]=data[a]; } } } } 57.統計字串個數 #include<stdio.h> int CalString(char *str){ int p=0; for(;*str!='\0';str++){ if(*str>='0'&&*str<='9'||*str>='a'&&*str<='z'||*str>='A'&&*str<='Z'){ p=p; } else{ p++; } } return p; } int main() { char a[100]; gets(a); int p=CalString(a); printf("%d",p); return 0; } 89.計算加減表示式 #include<stdio.h> int main(){ float digit; int i=0; char sig; scanf("%f",&digit); float result=digit; scanf("%c",&sig); if(sig!='+'&&sig!='-'&&sig!=';'||sig=='\0'){ printf("error"); return 0; } while(sig!=';'){ scanf("%f",&digit); if(sig=='+'){ result=result+digit; } if(sig=='-'){ result=result-digit; } scanf("%c",&sig); if(sig!='+'&&sig!='-'&&sig!=';'||sig=='\0'){ i++; break; } } if(i==0){ printf("%.6f",result); } if(i!=0){ printf("error"); } return 0; } 91.計算e的x次方 #include<stdio.h> #include<math.h> int main() { double a,b,c,x,d; int n; double e; a=b=c=e=1; scanf("%lf %d",&x,&n); if(n<0) printf("error"); else { while(a<=n) { b=b*a; a++; d=pow(x,c); e=d/b+e; c++; } printf("%.6lf",e); } return 0; } 92. #include<stdio.h> #include<math.h> int main() { unsigned int m,k=0; scanf("%u",&m); while(pow((float)2,(float)k)<=m) k++; printf("%u\n",k-1); return 0; } 107. 陣列中的值逆序存放 #include<stdio.h> int ReverseArray(int array[], int size) { int n,m; if((size<=0)||(array==NULL)) return 0; else { for(n=0;n<size-n;n++) { m=array[size-n-1]; array[size-n-1]=array[n]; array[n]=m; } return 1; } } 109. 統計一行字元的單詞數 #include<stdio.h> #include<string.h> int main() { char s[256]; int num=0,i,word=0; gets(s); int a=strlen(s); for(i=0;i<a;i++) { if(s[i]==' ') { word=0; } else { if(word==0) { num++; word=1; } else { word=1; } } } printf("%d\n",num); return 0; } 110.學生管理系統 #include <stdio.h> #include <string.h> struct Node{ char name[25]; int f; char str[10]; double h; int l,r; }P[100]; int main(){ int n; scanf("%d",&n); int C_max=0,C_min=100,C_sum=0; int Ca_max=0,Ca_min=100,Ca_sum=0; for (int i=0;i<n;i++){ scanf("%s %d %s %lf %d %d",P[i].name,&P[i].f,P[i].str,&P[i].h,&P[i].l,&P[i].r); if (P[i].l>C_max) C_max=P[i].l; if (P[i].l<C_min) C_min=P[i].l; if (P[i].r>Ca_max) Ca_max=P[i].r; if (P[i].r<Ca_min) Ca_min=P[i].r; C_sum+=P[i].l; Ca_sum+=P[i].r; } printf("C_average:%d\n",C_sum/n); printf("C_max:%d\n",C_max); for (int i=0;i<n;i++){ if (P[i].l==C_max){ printf("%s %d %s %.2f %d %d\n",P[i].name,P[i].f,P[i].str,P[i].h,P[i].l,P[i].r); } } printf("C_min:%d\n",C_min); printf("Calculus_average:%d\n",Ca_sum/n); printf("Calculus_max:%d\n",Ca_max); for (int i=0;i<n;i++){ if (P[i].r==Ca_max){ printf("%s %d %s %.2f %d %d\n",P[i].name,P[i].f,P[i].str,P[i].h,P[i].l,P[i].r); } } printf("Calculus_min:%d\n",Ca_min); return 0; } 111.檢查字串1是否包括字串2 #include<stdio.h> #include<stdlib.h> int main() { char s1[50],s2[20],*p1,*p2; int locat[10],posit=0,i=0,len2,j; gets(s1); gets(s2); p1=s1; p2=s2; for(j=0;*p2!='\0';j++,p2++) len2=j+1; p2=s2; do { if(*p1!=*p2) { p1++; posit++; } else { while((*p1==*p2)&&(*p2!='\0')) { p1++; p2++; posit++; } if(*p2=='\0') { locat[i]=posit-len2; i++; } } p2=s2; }while(*p1!='\0'); if(i<1) printf("NO\n"); else { printf("%dtimes,",i); for(int j=0;j<i-1;j++){ printf("%d,",locat[j]); } printf("%d",locat[i-1]); } return 0; } 112.統計字母和數字個數 #include<stdio.h> int main(){ char a[100]; char*p=a; gets(a); int i=0,j=0; while(*p!='\0'){ if(*p>='a'&&*p<='z'||*p>='A'&&*p<='Z'){ i++; } if(*p>='0'&&*p<='9'){ j++; } p++; } printf("letters:%d,digits:%d",i,j); return 0; } 115.二維陣列的行列變換 #include <stdio.h> void tran(int array[5][3], int out_array[3][5]) { int i,j; if(array==NULL||out_array==NULL) printf("error"); else for(i=0;i<3;i++) { for(j=0;j<5;j++) { out_array[i][j]=array[j][i]; } } } 114.隨機數置換 #include <stdio.h> #include <stdlib.h> #include <time.h> extern int RandInt(int i,int j); void RandomPermutation1(int n) { int A[100]; int i, j, flag, temp; if(n<=0) { printf("error"); return; } i = 0; while(i < n) { flag = 0; temp = RandInt(1, n); for(j=0; j<i; j++) { if(A[j] == temp) { flag = 1; break; } } if(!flag) { A[i] = temp; i++; } } for(i=0; i<n; i++) printf("%d,", A[i]); printf("0\n"); } void RandomPermutation2(int n) { int A[100], Used[101] = {0}; int i, j, temp; if(n<=0) { printf("error"); return; } i = 0; while(i < n) { temp = RandInt(1, n); if(Used[temp]) { continue; } Used[temp] = 1; A[i] = temp; i++; } for(i=0; i<n; i++) printf("%d,", A[i]); printf("0\n"); } void swap(int* a,int* b) { int t; t= *a; *a = *b; *b = t; } void RandomPermutation3(int n) { int A[100], i; if(n<=0) { printf("error"); return; } for(i = 0; i < n; i++) { A[i] = i+1; } for(i = 1; i < n; i++) { swap(&A[i], &A[RandInt(0,i)]); } for(i = 0; i < n; i++) printf("%d,", A[i]); printf("0\n"); 117. 編寫函式處理相同字元 #include<stdio.h> #include<string.h> void del(char *str){ int len,i,j; len=strlen(str); for(i=1;i<len;i++){ if(*(str+i)>='a'&&*(str+i)<='z'||*(str+i)>='A'&&*(str+i)<='Z'||*(str+i)>='0'&&*(str+i)<='9'){ } else{ if(*(str+i-1)==*(str+i)){ for(j=i;j<len;j++){ *(str+j)=*(str+j+1); } i--; len=len-1; } } } } int main(){ char a[100]; gets(a); char *str=a; del(str); for(;*str!='\0';str++){ printf("%c",*str); } return 0; } 118.水仙花 #include<stdio.h> int main() { int find(int n); int m; scanf("%d",&m); return 0; } int find(int n) { if(n<=99||n>=1000) return 0; else { int a,b,c,i,d; for(d=0,i=100;i<=n;i++) { a=(int)(i/100); c=i%10; b=(i-100*a-c)/10; if(i==a*a*a+c*c*c+b*b*b) { d++; } } return d; } } 121. 實現函式逆序輸出一組資料 #include<stdio.h> void main() { void isort(int a[], int n); int a[100],b,n; scanf("%d",&n); for(b=0;b<n;b++) scanf("%d",&a[b]); isort(a,n); } void isort(int a[], int n) { int i; for(i=n-1;i>0;i--) { printf("%d,",a[i]); } printf("%d",a[0]); } 132./0’轉義 #include<stdio.h> #include<string.h> int main(){ char s1[100]; char s2[100]; gets(s1); int len,i,j; len=strlen(s1); for(i=0;i<len;i++){ s2[i]=s1[i]; } s1[i]='\0'; for(j=0;j<i;j++){ printf("%c",s2[j]); } printf("\\0"); return 0; } 133.矩陣乘法 #include<stdio.h> void Matrix_Mul(int a[3][2],int b[2][4]){ int i,j,p,q; int mul[3][4]; for(i=0;i<3;i++){ for(j=0;j<4;j++){ mul[i][j]=(a[i][0]*b[0][j]+(a[i][1]*b[1][j])); } } for(p=0;p<3;p++){ for(q=0;q<3;q++){ printf("%d ",mul[p][q]); } printf("%d \n",mul[p][q]); } return; } int main(){ int a[3][2]={{1,2},{3,4},{5,6}}; int b[2][4]={{1,0,1,1},{0,1,0,1}}; int mul[3][4]; Matrix_Mul(a,b); return 0; } 134.統計字串出現個數 #include<stdio.h> #include<string.h> int SubStrNum(char *str, char *substr){ int len,i=0,j=0,sum=0; len=strlen(substr); while(*(str+i)!='\0'){ while(*(str+i)==*(substr+j)&&*(substr+j)!='\0'&&*(str+i)!='\0'){ i++; j++; } if(j==len){ sum++; j=0; } else{ j=0; i++; } } printf("match times=%d",sum); return 0; } int main(){ char a[100]; char b[100]; gets(a); gets(b); char *str=a; char *substr=b; SubStrNum(str,substr); return 0; } 135.計算大整數的差 #include<stdio.h> #include<string.h> int main(){ char a[100]; char b[100]; char c[100]; scanf("%s",&a); scanf("%s",&b); char *x=a; char *y=b; int len1,len2,lenmax,lenmin,i,j,temp,itemp; len1=strlen(x); len2=strlen(y); if(len1>len2){ temp=1; } if(len1<len2){ temp=-1; } if(len1==len2){ temp=0; } if(temp==0){ for(i=0;i<=len1-1&&temp==0;i++){ if(a[i]>b[i]){ temp=1; } if(a[i]<b[i]){ temp=-1; } if(a[i]==b[i]){ temp=0; } } } if(temp==1){ lenmax=len1; lenmin=len2; for(i=lenmax-1,j=lenmin-1;j>=0;i--,j--){ c[i]=a[i]-b[j]; } for(i=lenmax-lenmin-1;i>=0;i--){ c[i]=a[i]; } printf("+"); for(i=lenmax-1;i>=lenmax-lenmin-1;i--){ if(c[i]<0){ c[i]=c[i]+10; if(i>0){ c[i-1]=c[i-1]-1; } } } for(i=0;i<=lenmax-lenmin-1;i++){ printf("%c",c[i]); } for(i=lenmax-lenmin;i<=lenmax-1;i++){ printf("%c",c[i]=c[i]+48); } } if(temp==-1){ lenmax=len2; lenmin=len1; for(i=lenmax-1,j=lenmin-1;j>=0;i--,j--){ c[i]=b[i]-a[j]; } for(i=lenmax-lenmin-1;i>=0;i--){ c[i]=b[i]; } printf("-"); for(i=lenmax-1;i>=lenmax-lenmin-1;i--){ if(c[i]<0){ c[i]=c[i]+10; if(i>0){ c[i-1]=c[i-1]-1; } } } for(i=0;i<=lenmax-lenmin-1;i++){ printf("%c",c[i]); } for(i=lenmax-lenmin;i<=lenmax-1;i++){ printf("%c",c[i]=c[i]+48); } } if(temp==0){ printf("0"); } return 0; } 136.輸出類x和y #include<iostream> #include<cmath> using namespace std; class Location{ private: int X,Y; public: void init(int initX,int initY){ X=initX; Y=initY; } int GetX(){ return X; } int GetY(){ return Y; } }; int main(){ Location A1; A1.init(20,90); Location &rA1=A1; cout<<rA1.GetX()<<rA1.GetY(); return 0; } 137.實現三角形類 #include<iostream> #include<cmath> using namespace std; class Ctriangle{ private: double sa; double sb; double sc; public: Ctriangle(double a, double b, double c){ sa=a; sb=b; sc=c; } double GetPerimeter(){ return sa+sb+sc; } double Getarea(){ double p=GetPerimeter()/2; p=p*(p-sa)*(p-sb)*(p-sc); return sqrt(p); } void display(){ cout<<"Ctriangle:a="<<sa<<",b="<<sb<<",c="<<sc<<endl; } }; int main(){ double a,b,c; cin>>a>>b>>c; Ctriangle T(a,b,c); T.display(); cout<<"Perimeter:"<<T.GetPerimeter()<<endl; cout<<"Area:"<<T.Getarea()<<endl; return 0; } 138.實現point類 #include<iostream> #include<cmath> using namespace std; class Point{ private: double x; double y; public: Point(double x,double y){ this->x=x; this->y=y; } double Distance(const Point &p){ x-=p.x; y-=p.y; return sqrt(x*x+y*y); } }; int main(){ double a,b,c,d; cin>>a>>b>>c>>d; Point A(a,b),B(c,d); cout<<A.Distance(B)<<endl; return 0; } 159填空base #include <iostream> using namespace std; class base{ public: virtual int func(){return 0;} }; class derived:public base{ public: int a,b,c; void setValue(int x,int y,int z){a =x;b=y;c= z;} int func(){return (a+b)*c;} }; int main(){ base b; derived d; int x,y,z; cin>>x>>y>>z; cout<<b.func()<<","; d.setValue(x,y,z); cout<<d.func()<<","; base& pb = d; cout <<pb.func()<<endl; return 0; } 161填空題04 #include <iostream> using namespace std; class Base{ public: virtual void fun(){ cout<<1<<endl; } }; class Derived:public Base{ public: void fun(){cout<<2<<endl;} }; int main(){ Base *p = new Derived; p->fun(); delete p; return 0; } 164完成location #include <iostream> using namespace std; class Location{ public: Location(int xx,int yy){ x =xx; y =yy; } Location &operator +(Location &offset); Location &operator -(Location &offset); int getX(){return x;} int getY(){return y;} private: int x; int y; }; Location &Location::operator +(Location &offset){ this->x+=offset.x; this->y+=offset.y; return *this; } Location &Location::operator -(Location &offset){ this->x-=offset.x; this->y-=offset.y; return *this; } 167抽象類shape n&(n-1)==0 #include <iostream> #define PI 3.14 using namespace std; class Shape{ public: Shape(){} ~Shape(){} virtual double GetArea()=0; virtual double GetPerimeter()=0; static Shape* createRectangle(double length,double width); static Shape* createCircle(double radius); }; class Rectangle:public Shape { private: int a,b; public: Rectangle(double l,double w) { a=l,b=w; } double GetArea() { return a*b; } double GetPerimeter() { return 2*(a+b); } }; class Circle:public Shape { private: int r0; public: Circle(double r) { r0=r; } double GetArea() { return PI*r0*r0; } double GetPerimeter() { return 2*PI*r0; } }; Shape * Shape::createRectangle(double l,double w){return new Rectangle(l,w);} Shape * Shape::createCircle(double r){return new Circle(r);} 187.百錢百雞 #include<stdio.h> #include<math.h> int main() { int x,y,z; for(x=0;x<=20;x++) { for(y=0;y<=33;y++) {for(z=0;z<=99;z+=3) {if((5*x+3*y+z/3==100)&&(x+y+z==100&&z%3==0)) printf("%d,%d,%d,",x,y,z);} } } return 0; } 188.猴子摘桃 #include<stdio.h> int main(void) { int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,sum=0; a=(1+1)*2; b=(a+1)*2; c=(b+1)*2; d=(c+1)*2; e=(d+1)*2; f=(e+1)*2; g=(f+1)*2; h=(g+1)*2; i=(h+1)*2; sum=i; printf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", a,b,c,d,e,f,g,h,i,sum); return 0; } 189.折半查詢upper_bound() sort(a+1,a+1+n) #include<stdio.h> int main(void) { int n=0,m,i,start,mid,end,number,a[100]={0}; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d,",&a[i]); scanf("%d",&number); start=0; end=n-1; while(number==a[n-1]) { printf("%d",n); goto there; } while(number==a[0]) { printf("%d",1); goto there; } while(start+1<end) { mid=(end+start)/2; if(number>a[mid]) start=mid; else if(number<a[mid]) end=mid; else { printf("%d",mid+1); break; } } there:return 0; } 230. 指標練習之最值問題 #include<stdio.h> int main() { int i,n,a[100],p1,p2,max,min,*p; scanf("%d",&n); if(n<=0) printf("error"); else { p=a; for(i=0;i<n;i++) scanf("%d",p+i); max=a[0]; min=a[0]; p1=1; p2=1; for(i=1;i<n;i++) { if(max<*(p+i)) { max=*(p+i); p1=i+1; } } for(i=1;i<n;i++) { if(min>*(p+i)) { min=*(p+i); p2=i+1; } } } printf("max:%d,position:%d\n",max,p1); printf("min:%d,position:%d\n",min,p2); return 0; } 231. 指標練習之學號轉換 #include<stdio.h> #include<string.h> int fun(const char *p, int result[]) { int num[13]={0},i; if(p==NULL||strlen(p)!=13) return 0; else { while(*p!='\0') { if((*p)>='0'&&(*p)<='9'); else return 0; p++; } for(i=0;i<13;i++) num[i]=(int)(*((p-13)+i)-'0'); result[0]=num[0]*1000+num[1]*100+num[2]*10+num[3]; result[1]=num[4]*10+num[5]; result[2]=num[6]*1000+num[7]*100+num[8]*10+num[9]; result[3]=num[10]*100+num[11]*10+num[12]; return 1; } } 232.字串拷貝 #include<stdio.h> int main() { char a[100]={'\0'},d[100]={'\0'},*b; int i=0,c=0; scanf("%s",a); b=a; while(*(b+1)!='\0'&&*(b+2)!='\0') { d[i]=*b; d[i+1]=*(b+1); d[i+2]='*'; b+=2; i+=3; c+=2; } if(a[c+1]!='\0') printf("%s%c%c\n",d,a[c],a[c+1]); else printf("%s%c\n",d,a[c]); return 0; } 233. #include<stdio.h> extern int max_val, min_val, ave_val; extern int cal( int *pData, int iLen ) { int i,sum=0; if(iLen<0||pData==NULL) {return 0;} max_val=pData[0]; for(i=0;i<iLen;i++) { if(max_val<pData[i]) {max_val=pData[i];} } min_val=pData[0]; for(i=0;i<iLen;i++) { if(min_val>pData[i]) {min_val=pData[i];} } for(i=0;i<iLen;i++) { sum=sum+pData[i]; } ave_val=sum/iLen; return 1; 234.巨集定義和使用 #include<stdio.h> #define MAX(a,b) (a>b)? a : b int main(void) { int a,b,c; scanf("%d,%d,%d",&a,&b,&c); a=MAX(a,b); c=MAX(a,c); printf("%d",c); } 235.動態記憶體分部 #include<stdio.h> #include<stdlib.h> int main(void) { int n,i,j,temp; scanf("%d",&n); int *array=(int *)malloc(n*sizeof(int)); for(i=0;i<n;i++) {scanf("%d",array+i);} for(j=0;j<n-1;j++) { for(i=0;i<n-1-j;i++) { if(array[i]>array[i+1]) { temp=array[i+1]; array[i+1]=array[i]; array[i]=temp; } } } for(i=0;i<n-1;i++) {printf("%d,",array[i]);} printf("%d\n",array[n-1]); return 0; } 275.證明哥德巴赫猜想 #include<stdio.h> #include<math.h> int main(){ int n,x,fir,i,s=1,sec; scanf("%d",&n); if(n>=4&&n<2000&&n%2==0){ if(n==4){ printf("2 2 "); } else{ for(x=2;x<=(n/2);x++){ fir=x; for(i=2;i<=(sqrt((float)fir)+1);i++){ if(fir%i==0){ fir=0; } } sec=n-x; for(i=2;i<=(sqrt((float)sec)+1);i++){ if(sec%i==0){ sec=0; } } if(fir!=0&&sec!=0){ printf("%d %d ",fir,sec); } }} } else{ printf("error"); } return 0; }