【发布时间】:2017-05-19 02:25:14
【问题描述】:
char type;
printf("What type of sort would you like to perform?\n");
scanf("%s", &type);
switch(type)
{
case 'bubble':
bubble_sort();
case 'selection':
case 'insertion':
default:
printf("invalid input\n");
}
我正在尝试创建一个程序,该程序根据用户的输入使用冒泡、选择或插入排序对列表进行排序。
我必须使用 switch case 来做到这一点。
我在 switch 语句之前定义了一个变量“type”,然后使用 scanf 函数为其分配“bubble”、“selection”或“insertion”。
但是,当我运行代码并输入“bubble”时,它不会执行我的bubble_sort 函数(此处未显示),而是使用默认情况。
我该如何解决这个问题?
我有点不确定“char”是否是定义“类型”变量的正确方法,或者 switch 语句是否只能用于单个字符。
另外,如果我的代码格式不正确,我深表歉意,因为我是这个网站的新手。
如果我需要为这个问题添加更多信息,请告诉我!
【问题讨论】:
-
首先,在
bubble_sort();之后需要一个break,否则它会落入下一个案例。其次,这真的可以编译吗?在 C 中,字符串应该用双引号引起来。而且你不能在switch中使用字符串。 -
我刚刚添加了一个break,但同样的问题仍然存在。它确实编译
-
认真对待编译器的警告。修复代码直到不再发出警告... sigh
-
另外,刚刚注意到您将
type声明为char,但在scanf中将其视为字符串。 -
提示:在 C 中,单引号与双引号非常、非常、非常不同。
标签: c sorting switch-statement scanf