for循环 #include<stdio.h> int main() { int i,j,u=0; for(i=2;i<=500;i++) { u=0;j=0; do { j++; if(i%j==0) u=u+j; } while(j<=i/2); if(u==i) { printf("\n%5d的约数有",u); j=0; do { j++; if(i%j==0) printf("%5d",j); } while(j<=i/2); } } printf("\n"); return 0; } 递归 #include <stdio.h> float main() { float x,n; printf("请输入两个数,分别为x和n\n"); scanf("%d %d",&x,&n); printf("结果为%5d",power(x,n)); } float power(float x,float n) { int p; if(n>0) p=power(x,-n-1)*x; else p=1; return p; } 菱形 #include<stdio.h> int main() { int i,j; for(i=1;i<=5;i++) { for(j=0;j<=5;j++) if(j>=4-i&&j<=2+i&&i<=3) printf("*"); else if(i>3&&j>=i-2&&j<=8-i) printf("*"); else printf(" "); printf("\n"); } printf("\n"); return 0; } 判星期 #include<stdio.h> int main() { char letter; scanf("%C",&letter); printf("DATE:"); switch(letter) { case'M':printf("Monday\n"); break; case'T':printf("please input second letter\n"); if((letter=getch())=='u') printf ("Tuesday\n"); else if((letter=getch())=='h') printf("Thursday\n"); else printf("DATE ERROR!\n"); break; case'W':printf("Wednesday\n"); break; case'F':printf("Friday\n"); break; case'S':printf("please input second letter\n"); if((letter=getch())=='a') printf("Saturday\n"); else if((letter=getch())=='u') printf("Sunday\n"); else printf("DATE ERROR!\n"); break; default:printf("enter data error!\n"); } return 0; } 数字金字塔 #include<stdio.h> int main() { int i,j,u; for(i=1;i<=9;i++) { for(j=1;j<=17;j++) { if(j>9-i&&j<=9) printf("%d",u=i+j-9); else if(j>9&&j<9+i) printf("%d",u=9+i-j); else printf(" "); } printf("\n"); } printf("\n"); return 0; } 完数 #include<stdio.h> int main() { int i,j=1,u; for(i=2;i<=500;i++) { u=0; for(j=1;j<=i/2;j++) { if(i%j==0) u=u+j; } if(u==i) { printf("\n%5d的公约数有",u); for(j=1;j<=i/2;j++) if(i%j==0) printf("%6d",j); } } printf("\n"); return 0; } 选择法排序 #include<stdio.h> int main() { void shuru(int a[],int n); void xuanze(int a[],int n); void shuchu(int a[],int n); int c[100]; int m; printf("请输入数据及数据长度\n"); scanf("%d",&m); printf("请输入数据\n"); shuru(c,m); xuanze(c,m); shuchu(c,m); return 0; } void shuru(int a[],int n) { int i; for(i=0;i<n;i++) scanf("%d",&a[i]); } void xuanze(int b[],int n) { int i,j,k,t; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(b[j]<b[k]) k=j; t=b[k]; b[k]=b[i]; b[i]=t; }
} void shuchu(int a[],int n) { int i; for(i=0;i<n;i++) printf("%d\n",a[i]); } 杨辉三角 #include<stdio.h> int main() { int a[10][10]; int n=10,i=10,j=10; for(i=0;i<n;i++) //边部为1 { a[i][0]=1; a[i][i]=1; } for(i=2;i<n;i++) //下两行等于上两行之和 for(j=1;j<i;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i<n;i++) //打印空格和回车 { for(j=0;j<=i;j++) printf("%5d",a[i][j]); printf("\n"); } return 0; } 正弦 #define PAI 3.14159 #include<stdio.h> #include<math.h> int main() { double x; int y,i,yy; for(i=1;i<80;i++) if(i==40) printf("*"); else printf("-"); printf("\n"); for(x=10.0;x<=360.0;x+=10) { y=40+30*sin(x*PAI/180.0); yy=40>y?40:y; for(i=1;i<=yy;i++) { if(i==y) printf("*"); else if(i==40) printf("|"); else printf(" "); } printf("\n"); } return 0; } 正弦扩展 #include<stdio.h> int main() { int i,j,k; for(i=1;i<=5;i++) { for(j=0;j<=5;j++) if(j>=4-i&&j<=2+i&&i<=3) printf("*"); else if(i>3&&j>=i-2&&j<=8-i) printf("*"); else printf(" "); printf("\n"); } printf("\n"); return 0; } 正弦后代星 #define PAI 3.14159 #include<stdio.h> #include<math.h> int main() { double x; int y,i,yy; for(i=1;i<80;i++) if(i==40) printf("*"); else printf("-"); printf("\n"); for (x=10.0;x<=360.0;x+=10) { y=40+30*sin(x*PAI/180.0); yy=40>y?40:y; for(i=1;i<=yy;i++) { if(i==y)printf("*"); else if(i==40) printf("|"); else if(i>40 && i<y) printf("_"); else if(i>=y) printf("_"); else printf(" "); } printf("\n"); } }
字符数组 #include<stdio.h> #include<string.h> int main() { char a[4][40]; char b[40]; int i; for(i=0;i<4;i++) gets(a[i]); if(strcmp(a[0],a[1])>0) strcpy(b,a[0]); else strcpy(b,a[1]); if(strcmp(a[2],b)>0) strcpy(b,a[2]); else if(strcmp(a[3],b)>0) strcpy(b,a[3]); printf("最大字符是%s\n",b); return 0; } 最大公约数和最小公倍数 #include <stdio.h> int main() { int u,v,max,min; int gongyue(int x,int y); int gongbei(int x,int y); printf("请输入两个正数\n"); scanf("%d%d",&u,&v); max=gongyue(u,v); min=gongbei(u,v); printf("这个数的最大公约数为%d,最小公倍数为%d",max,min); return 0; } int gongyue(int x,int y) { int t,z; while(y!=0) { if(y>x) t=x; x=y; y=t; z=x%y; x=y; y=z; } if(y==0) return (x); } int gongbei(int x,int y) { return(x*y/gongyue(x,y)); } 对角相加得下一行得数 #include<stdio.h> int main() { int a[10][10]; int n=10,i=10,j=10; for(i=0;i<n;i++) //边部为1 { a[i][0]=1; a[i][i]=1; } for(i=2;i<n;i++) //下两行等于上两行之和 for(j=1;j<i;j++) a[i][j]=a[i][j-1]+a[i-1][j]; for(i=0;i<n;i++) //打印空格和回车 { for(j=0;j<=i;j++) printf("%5d",a[i][j]); printf("\n"); } return 0; }
|