//输出图案 #include101-找队友int main(void) { int i,j; for(i=1;i<=4;i++) { for(j=4-i;j>0;j--) printf(" "); for(j=1;j<=2*i-1;j++) printf("*"); printf("n"); } for(i=1;i<4;i++) { for(j=1;j<=i;j++) printf(" "); for(j=2*(4-i)-1;j>=1;j--) printf("*"); if(i!=3) printf("n"); } return 0; }
//找队友 #include102-对数组逆序输出int main(void) { char i,j,k; for(i='x';i<='z';i++) { for(j='x';j<='z';j++) { if(i!=j) { for(k='x';k<='z';k++) { if(k!=i&&k!=j) { if(i!='x' && k!='x' && k!='z') { printf("A--%cnB--%cnC--%c",i,j,k); } } } } } } return 0; }
//102-对数组逆序输出 #include103-用数组来处理Fibonacci数列问题int main(void) { int i,a[10]; for(i=0;i<10;i++) a[i]=i+1; for(i=9;i>=0;i--) printf("%d ",a[i]); return 0; }
//用数组来处理Fibonacci数列问题 #include104-冒泡法-我发现我把它和选择排序有点混了,不能这个样子int main(void) { int i; int f[20]={1,1}; for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++) { if(i%5==0) printf("n"); printf("%-12d",f[i]); } return 0; }
//用冒泡法来解决排序 #include105-二维数组的转换int main(void) { float a[10],t; int i,j; for(i=0;i<10;i++) scanf("%f",&a[i]); for(i=0;i<9;i++) { for(j=0;j<9-i;j++) { if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for(i=0;i<10;i++) printf("%.0f ",a[i]); return 0; }
//二维数组的转换 #include106-有一个3*4的矩阵,要求编程序输出其中最大的值,以及对应的行和列int main(void) { int a[2][3],b[3][2]; int i,j; for(i=0;i<2;i++) { for(j=0;j<3;j++) { scanf("%d",&a[i][j]); b[j][i]=a[i][j]; } } for(i=0;i<3;i++) { for(j=0;j<2;j++) { printf("%d ",b[i][j]); } printf("n"); } }
//有一个3*4的矩阵,要求编程序输出其中最大的值,以及对应的行和列 #includeint main(void) { int i,j,max,ii=0,jj=0,a[3][4]; for(i=0;i<3;i++) { for(j=0;j<4;j++) { scanf("%d",&a[i][j]); if(i==0&&j==0) { max=a[0][0]; } if(max 107-输出一个已知的字符串 //输出一个已知的字符串 #include108-输出一个菱形图#include int main(void) { char a[20]; gets(a); int len = strlen(a); //printf("%dn",len); puts(a); return 0; } //输出一个菱形图 #include109-统计其中有多个单词int main(void) { int t; scanf("%d",&t); int n=t/2+1; int i,j; for(i=1;i<=n;i++) { for(j=1;j<=n-i;j++) { printf(" "); } printf("*"); if(i>1) { for(j=1;j<=2*(i-1)-1;j++) printf(" "); printf("*"); } printf("n"); } //下半部分 for(i=1;i<=n-1;i++) { for(j=1;j<=i;j++) printf(" "); printf("*"); if(i!=n-1) { for(j=1;j<=2*(n-1-i)-1;j++) { printf(" "); } printf("*"); printf("n"); } } return 0; } //109-统计其中有多个单词 #include111-用筛选法求100之内的素数int main(void) { char string[81]; int i,num=0,word=0; char c; gets(string); for(i=0;(c=string[i])!=' ';i++) { if(!( (c>= 'a' && c<= 'z') || (c>= 'A' && c<= 'Z') )|| c== ' ') { word=0; } else if(word==0) { word=1; num++; } } printf("%d",num); return 0; } //用筛选法求100之内的素数 #include112-用选择法对10个整数排序#include int main(void) { int i,j,n,a[101]; for(i=1;i<=100;i++) a[i]=i; a[1]=0; for(i=2;i<=sqrt(100);i++) { for(j=i+1;j<=100;j++) { if(a[i]!=0 && a[j]!=0) if(a[j]%a[i]==0) a[j]=0; } } for(i=2,n=0;i<=100;i++) { if(a[i]!=0) { printf("%5d",a[i]); n++; } if(n==10) { printf("n"); n=0; } } return 0; } //用选择法对10个整数排序 #include113-求一个3*3的整数矩阵的对角线之和int main(void) { int i,a[10],t,j; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) { for(j=i+1;j<10;j++) { if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } } for(i=0;i<10;i++) printf("%d ",a[i]); return 0; } //求一个3*3的整数矩阵的对角线之和 #include114-有一个已排序好的数组,要求输入一个数后,按原来排序的规律将它插入数组中int main(void) { int sum,a[3][3],i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); for(i=0;i<3;i++) sum += a[i][i]; printf("%d",sum); return 0; } //有一个已排序好的数组,要求输入一个数后,按原来排序的规律将它插入数组中 #includeint main(void) { int n; scanf("%d",&n); int a[n+10],i,j,t1,t2; for(i=1;i<=n;i++) { scanf("%d",&a[i]); } int num; scanf("%d",&num); //插入 if(num>a[n]) a[n+1]=num; else { for(i=n;num 115-插入排序 //插入排序 #includeint main(void) { int a[10]={0,3,2,4,1,8}; int i,j; for(i=2;i<=6;i++) { if(a[i] 116-折半插入排序 //将一个数组中的值按逆序重排,折半查找 #include117-去重之后按升序排序int main(void) { int n; scanf("%d",&n); int a[n+10],low,high,mid,i,j; for(i=1;i<=n;i++) { scanf("%d",&a[i]); } for(i=2;i<=n;i++) { a[0]=a[i]; low = 1,high=i-1; while(low<=high) { mid=(low+high)/2; if(a[mid]>a[0]) high = mid-1; else low = mid+1; } for(j=i-1;j>=high+1;j--) a[j+1]=a[j]; a[high+1]=a[0]; } for(i=1;i<=n;i++) printf("%d ",a[i]); } //117-去重之后按升序排序 #includeint main(void) { int n,m; scanf("%d%d",&n,&m); int a[n],b[m],c[n+m],i,j,t; //输入数组,并合并 for(i=0;i c[j]) { t=c[i]; c[i]=c[j]; c[j]=t; } } } //按升序输出 for(i=0;i 118-去重之后升序排序 //118-去重之后升序排列 #includeint main(void) { char a[10],b[10]; int c[20],d[20],i,j,k=0,m=0,t; scanf("%s",a); scanf("%s",b); //合并并转为int数组 for(i=0;a[i]!=' ';i++) { c[k]=a[i]-'0'; k++; } for(i=0;b[i]!=' ';i++) { c[k]=b[i]-'0'; k++; } //去重 for(i=0;i d[j+1]) { t=d[j]; d[j]=d[j+1]; d[j+1]=t; } } } for(i=0;i



