首页 > 代码库 > C语言作业9

C语言作业9

1.编写函数判断用户输入的字符是否是对称的字符串(即顺读和倒读都一样的字符串)。例如“XYZYX”和“xyzzyx”都是对称的。

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int f,i=0,a[100],n,j;
    char x;
    do
    {
        i++;
        x=getchar();
        a[i]=(int)(x);
    }
    while(a[i]!=10);
    n=i;
    if(n==3||n==4)
    {
        if(a[n-1]==a[1])
            goto END1;
        else
            goto END2;
    }
    for(j=1; f&&j<=(n/2); j++)
    {
        f=0;
        if(a[j]==a[n-j])
            f=1;
    }
    if((float)j>=((float)(n)/2))
        END1:printf("Yes\n");
    else
        END2:printf("No\n");
    return 0;
}

2. 编写函数用冒泡排序法将用户输入的若干个数(或学生姓名)按升序排序。

#include <stdio.h>
int main()
{
    int a[10];
    int i,j,temp;
    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])
            {
                temp=a[i];
                a[i]=a[i+1];
                a[i+1]=temp;
            }
        }
     for(i=0; i<10;i++)
        printf("%d,",&a[i]);
     printf("\n");
     return 0;
}

3. 编写函数用选择排序法将用户输入的若干个数(或学生姓名)按升序排序。

#include<stdio.h>
int max(int a[])
{
    int i,j,t;
    for(i=0;i<10;i++)
        for(j=i+1;j<10;j++)
        if (a[i]>a[j])   
    {
        t=a[i];   
        a[i]=a[j];   
        a[j]=t;  
    }
}
int main()
{

     int a[10],i;
     printf("输入十个数字:");       
     for(i=0;i<10;i++)
          scanf("%d",&a[i]);
     max(a);
     for(i=0;i<10;i++)      
     printf("%d  ",a[i]);
     return 0; 
}

4. 编写函数用插入排序法将用户输入的若干个数(或学生姓名)按升序排序。

#include<stdio.h>
int main()
{
     int a[11],n,i,j;
     printf("输入10个数:");
     for(i=1;i<=10;i++)
         scanf("%d",&a[i]);
     for(i=2;i<=10;i++)
     {
         a[0]=a[i];
         for(j=i-1;a[j]>a[0];j--)
         a[j+1]=a[j];
         a[j+1]=a[0];
     }
     for(i=1;i<=10;i++)
     printf("%d ",a[i]);
     printf("\n");
     return 0;
}

到网上百度了好多...还问了好多同学..无论怎样终于把作业写出来了.感谢

C语言作业9