#include <stdio.h>
#include <string.h>
#define PI 3.14159
#define MAX 21
void exchange()
{
char a[20]="acdeklm"; //声明一个长度为20的字符型数组
char s;//定义一个字符变量s
long i,na;//定义两个int型变量一个为i,一个为na
scanf("%c",&s);//输入一个新字符
na=strlen(a);//测量字符串的长度
for (i=na-1; i>=0; i--) {//将数组中的元素遍历一遍
if (a[i]>s)//若a的ascii值大于新字符为真则将a向后移一位
a[i+1]=a[i];
else break;//否则退出循环
}
a[i+1]=s;//将新字符放在i+1的位置
na++;//将字符数组长度加一
a[na]='\0';//将字符数组最后一位放上'\0'
printf("%s",a);
printf("\n");
}
void exchange1()
{
char a[20]="acdeklm";//声明一个长度20字符型数组
char s[5]="tfbx"; //声明长度w为5的字符数组
long i,k,na,ns;//声明4个long型变量
na=strlen(a);//测字符串的长度
ns=strlen(s);
for (k=0; k<ns; k++) {
for (i=na-1; i>=0; i--)
if (a[i]>s[k])
a[i+1]=a[i];
else break;
a[i+1]=s[k];
na++;
}
a[na]='\0';
printf("%s\n",a);
}
void circle_area()
{
float r,c,a;
scanf("%f",&r);
c=2*r*PI;
a=r*r*PI;
printf("周长:%f\n",c);
printf("面积:%f\n",a);
}
void exchange2(){
int a[10]={3,7,8,10,15,20,30};
int x,i,n=6;
printf("input a number:");
scanf("%d",&x);
for (i=n; i>=0; i--)
if(a[i]>x)
a[i+1]=a[i];
else
break;
a[i+1]=x;
n++;
for (i=0; i<=n; i++)//把新数组遍历一遍
printf("%3d",a[i]);
}
void Bubble_sort()
{
/*int a[MAX],i,j,k;
for (i=1; i<MAX;i++)
scanf("%d",&a[i]); //给数组a赋初始值
for (k=1; k<MAX-1; k++)
for (i=MAX-1;i<MAX-k ;i++ )
if (a[i]<a[i+1]) {
j=a[i+1];
a[i]=a[i+1];
a[i+1]=j;
}
for (i=1; i<MAX; i++)
printf((i%5)?"%8d":"%8d\n",a[i]);
printf("\n");*/
}
void Descending_order()
{
int a[5]={4,6,2,0,7};
int i,j,m;
for (i=1; i<5; i++) {
m=a[i];
j=i-1;//前移
while (j>=0&&m>a[j]) {
a[j+1]=a[j];
j--;
}
a[j+1]=m;
}
for (i=0; i<5; i++) {//重排
printf("%d,",a[i]);
printf("\n");
}
}
void ascending(){
int a[4]={3,7,9,10};
int b[3]={2,6,8};
int c[10],i,j,k;
for (i=0,j=0,k=0; i<4&&j<3; k++) {
if (a[i]>b[j]) {
c[k]=b[j];j++;
}
else
{
c[k]=a[i];i++;
}
}
while (i<4) {
c[k]=a[i];i++;k++;
}
while (j<3) {
c[k]=b[j];j++;k++;
}
for (i=0; i<k; i++) {
printf("%d\t",c[i]);
}
}
void triangle(){
int row,col,a[10]={1};
printf("\n%6d\n",1);
for (row=1; row<10; row++) {
a[row]=1;
for (col=row-1; col>0; col--)
a[col]=a[col-1]+a[col];
for (col=0; col<=row; col++)
printf("%6d",a[col]);
printf("\n");
}
}
void fuzzy(){
int a[3][3],i,j,n=3;
for (i=0; i<3; i++)
for (j=0; j<3; j++)
a[i][j]=n++;
for (i=0; i<3; i++) {
for (j=0; j<=i; j++) {
printf("%3d",a[i][j]);
printf("\n");
}
}
}
void fuzzy1(){
int a[20],c[5],i,n=0,x;
scanf("%d",&x);
while (x!=-1) {
if (x>=0&&x<=4)
a[n++]=x;
scanf("%d",&x);
}
for (i=0; i<5; i++)
c[i]=0;
for (i=0; i<n;i++)
c[a[i]]++;
printf("The result is:\n");
for (i=0; i<5; i++)
printf("%4d",c[i]);
printf("\n");
}
int main(int argc, const char * argv[]) {
exchange(); //数组中插入字符
printf("\n");
exchange1(); //数组中插入数组
printf("\n");
circle_area(); //计算圆的面积
printf("\n");
exchange2();//数组中插入一个新的数字
printf("\n");
Bubble_sort();//利用冒泡排序对数组的值由大到小进行排序
printf("\n");
Descending_order();//对一个数组进行降序排序
printf("\n");
ascending();//把两个按升序排列的数组合并成一个按升序排列的数组
printf("\n");
triangle();//杨辉三角形
printf("\n");
fuzzy();//打印二维数组的下三角
printf("\n");
fuzzy1();
return 0;
}
output:
y
acdeklmy
abcdefklmtx
6
周长:37.699081
面积:113.097237
input a number:6
3 6 7 8 10 15 20 30
7,
6,
4,
2,
0,
2 3 6 7 8 9 10
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
3
6
7
9
10
11