急求一个c语言的程序设计,一百多行,初学者的水平就行

如题所述

以前改过的一个程序
输入字符串,检查回文,排序
挺简单的 大约100行吧

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 100
int n;
char a[N][100];
void begin()
{
printf("\n ╔════════════════════════╗");
printf("\n ║ 【1】输入字符串 【2】字符串排序 ║");
printf("\n ║ ║");
printf("\n ║ ║");
printf("\n ║ 【3】检查回文 【4】退出菜单 ║");
printf("\n ╚════════════════════════╝");
printf("\n\n请选择需要的服务:\n");
}
void shu(char *p[])
{
system ("cls");
int i;

printf("请输入字符串数量:\n");
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
p[i]=a[i];

printf("请分别输入字符串:\n");
for(i=0;i<n;i++)
gets(p[i]);
}
void sort(char *name[])
{
system ("cls");
char *temp;
int i,j;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
if(strcmp(name[i],name[j])>0)
{
temp=name[i];
name[i]=name[j];
name[j]=temp;
}
}
for(i=0;i<n;i++)
printf("%s\n",name[i]);
}
void huiwen(char *p[])
{
system("cls");
printf("具有回文的字符串:\n");
int i,j,k,len,t;
char*pt;

for(i=0;i<n;i++)
{
t=0;
pt=p[i];
len=strlen(pt);

for(j=0,k=len-1;j<=k;j++,k--)
if(pt[j]!=pt[k])
{
t=1;
break;
}
if(t==0)
printf("%s\n",pt);
}
}
int main()
{
int i;
char ch;
char *p[N];

loop:
begin();
scanf("%d",&i);
getchar();
switch(i)
{
case 1: shu(p);break;
case 2: sort(p);break;
case 3: huiwen(p);break;
case 4: exit(0);
default:
printf("error!\n");
}
printf("返回主菜单(y/n)\n");

ch=getchar();
getchar();

if(ch=='y'||ch=='Y')
{ system ("cls"); goto loop; }
return 0;
}追问

能说说具体的功能吗

追答

进入菜单 输入1
可以输入一系列的字符串,输入总数在输入开始的时候指定
然后按2可以排序并输出
按3可以输出所有的回文字符串
按4退出
程序挺简单的,逻辑上也不是很严谨,里面值得优化的地方也很多,或许还有bug
本来就是初学者写的,所以不是很完善

温馨提示:答案为网友推荐,仅供参考