switch为什么不能用的?
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define heng 100
void compare(char *str[][20],int k);
void adjust(char *str[][20],int k);
main()
{
int n,i;
char choose1,choose2,*str[heng][20];
do
{
printf("CONTINUE?YES请按Y No请按N");
scanf(" %c",&choose1);
if(choose1==89||choose1==121)
{
printf("请输入将要输入字符串的个数:");
scanf("%d",&n);
printf("您将输入%d个字符串\n",n);
printf("请输入将要输入的字符串:\n");
for(i=0;i<n;i++)
{
scanf("%s",str);
printf("%s\n",*str);
}
do
{
printf("\nA对以上字符串进行排序请选2");
printf("\nB对以上字符串是否有\"回文\"进行判断请选3");
printf("\nC同时进行AB两项请选4");
printf("\nD退出请选0\n");
choose2=getche();
switch(choose2)
{
case'2':
printf("比较后结果是:\n");
compare(str,n);
break;
case'3':
printf("判断后结果是:\n");
adjust(str,n);
break;
case'0':
printf("您已退出菜单。\n");
break;
default:
printf("您未作出正确选择!请重新选择。\n");
}
}while(choose2==48);
printf("\n您已完成所选项目!");
}
else if((choose1==78)||(choose1==110))
{
printf("您已退出菜单!\n");
}
else
printf("\n您未作出正确选择!请重新选择Y或N.\n");
}while((choose2!=89)&&(choose2!=121)&&(choose2!=78)&&(choose2!=110));
}
void compare(char *str[][20],int k)
{
int i,j;
char *temp=NULL;
for(i=0;i<(k-1);i++)
{
for(j=i+1;j<k;j++)
{
if(strcmp(str[i][20],str[j][20])>0)
{
*temp=*str[i][20];
*str[i][20]=*str[j][20];
*str[j][20]=*temp;
}
}
printf("%s",str[i][20]);
printf("\n");
}
printf("%s",str[i][20]);
printf("\n");
}
void adjust(char *str[][20],int k)
{
int i,j,len;
for(i=0;i<k;i++)
{
len=strlen(str[i][20]);
for(j=0;j<=(len/2);j++)
{
if(*str[i][j]!=*str[i][len-j])
break;
else
printf("%s是\"回文\"字符串\n",str[i][len+1]);
}
}
}
在switch语句就不能进行了,求解!
[解决办法]
choose2=getche();
你有没有进行输入呀?
[解决办法]
choose2=getchar();//..........................
[解决办法]
getchar();//首先在这儿清空一下缓冲区 choose2=getchar();
[解决办法]
}while(choose2!=48);//再次你这儿要改成不等于0则继续循环而不是等于 printf("\n您已完成所选项目!");
[解决办法]
while(choose2!=48);//再次你这儿要改成不等于0则继续循环而不是等于
+1
------解决方案--------------------
default: printf("您未作出正确选择!请重新选择。\n");} }while(choose2!=48);//楼主,这儿改成不等号printf("\n您已完成所选项目!");
[解决办法]
for (i=0;i<k;i++) { printf("%s\n",str[i]); }