C语言第9次作业

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

#include<stdio.h>
int main()
{
      char str[100];
      int i=0,a,b,j,k;
      gets(str);
      while(str[i]!='\0')
             i++;              
      if(i%2==0)
      {
            a=i/2-1;b=i/2;        
      }
      else
      {
            a=i/2-1;b=i/2+1;
      }
      for(j=a,k=b;j>=0,k<=i;j--,k++) 
      {
            if(str[j]!=str[k])
            break;
      }
      if(k==i+1)
            printf("Yes\n");
      else
            printf("No.\n");
} 

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

#include <stdio.h>
#include <string.h>
void f1()
{
    char a[100];
    int length,j,i,temp;
    printf("请输入:");
    scanf("%s",a);
    length=strlen(a);
    for(j=0;j<length;j++)
    {
        for(i=length-1;i>0;i--)
        {
            if(a[i]<a[i-1])
            {
                temp=a[i];
                a[i]=a[i-1];
                a[i-1]=temp;
            }
        }
    }
    printf("将其升序排序为:");
    for(i=0;i<length;i++)
        printf("%c",a[i]);    
}
int main()
{
    f1();
    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[100];
    int i,temp,j;
    printf("请输入:");
    scanf("%d",a);
    for(i=1;i<100;i++)
    {
        temp=a[i];
        j=i-1;
        while(j>=0&&temp<a[j])
        {
            a[j*1]=a[j];
            j--;
        }
        a[j*1]=temp    
    } 
    printf("升序排序为:")
}

我尽力了,真的。

posted @ 2016-11-24 23:04  栗子~lzy  阅读(203)  评论(1编辑  收藏  举报