首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

switch为什么不能用的?该怎么解决

2012-03-11 
switch为什么不能用的?#include stdio.h#include conio.h#include string.h#define heng 100void co

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();
你有没有进行输入呀?
[解决办法]

C/C++ code
choose2=getchar();//..........................
[解决办法]
C/C++ code
                getchar();//首先在这儿清空一下缓冲区                choose2=getchar();
[解决办法]
C/C++ code
            }while(choose2!=48);//再次你这儿要改成不等于0则继续循环而不是等于            printf("\n您已完成所选项目!");
[解决办法]
while(choose2!=48);//再次你这儿要改成不等于0则继续循环而不是等于

+1
------解决方案--------------------


C/C++ code
default:  printf("您未作出正确选择!请重新选择。\n");}  }while(choose2!=48);//楼主,这儿改成不等号printf("\n您已完成所选项目!");
[解决办法]
探讨

问题描述:
设有若干个字符串,这些字符串存储位置的首地址保存在指针数组中(即字符串用指向字符的指针变量表示)。
实现要求:
⑴ 实现字符串的输入和输出;
⑵ 对所有的字符串按从小到大的顺序排序,即指针数组中的第一个元素指向最小的字符串,第二个元素指向次小的字符串…,依次类推;
⑶ 判断这些字符串中是否有“回文”,所谓“回文”指的是顺读和倒读都是一样的字符串;
⑷ 设计一个菜单,具有上……

[解决办法]
上面是比较算法,没有比较后的输出,下面是比较后的输出
C/C++ code
    for (i=0;i<k;i++)    {        printf("%s\n",str[i]);    } 

热点排行