int arr[]={1,2} switch(arr)
时间: 2024-02-14 08:09:35 浏览: 37
这段代码是错误的。switch语句的表达式必须是整型或枚举类型。而数组不是整型或枚举类型,所以不能作为switch语句的表达式。如果你想使用数组作为switch语句的表达式,需要先将数组的某个元素赋值给一个整型变量,然后将该变量作为switch语句的表达式。例如:
```
int arr[] = {1, 2};
int x = arr[0];
switch (x) {
case 1:
// ...
break;
case 2:
// ...
break;
default:
// ...
break;
}
```
相关问题
#include <stdio.h> #include <stdlib.h> // 顺序查找 int sequentialSearch(int *arr, int n, int key) { for (int i = 0; i < n; ++i) { if (arr[i] == key) { return i; } } return -1; } // 二分查找 int binarySearch(int *arr, int n, int key) { int left = 0, right = n - 1; while (left <= right) { int mid = left + (right - left) / 2; if (arr[mid] == key) { return mid; } else if (arr[mid] < key) { left = mid + 1; } else { right = mid - 1; } } return -1; } int main() { int n, menu, key; printf("请输入查找表的表长n:"); scanf("%d", &n); int *arr = (int *) malloc(n * sizeof(int)); printf("请输入%d个关键字值:", n); for (int i = 0; i < n; ++i) { scanf("%d", &arr[i]); } while (1) { printf("请选择查找方法:\n"); printf("1. 顺序查找\n"); printf("2. 二分查找\n"); printf("3. 退出程序\n"); scanf("%d", &menu); switch (menu) { case 1: printf("请输入要查找的关键值:"); scanf("%d", &key); int index1 = sequentialSearch(arr, n, key); if (index1 == -1) { printf("没有找到该记录\n"); } else { printf("找到了该记录,位置为:%d\n", index1); } break; case 2: printf("请输入要查找的关键值:"); scanf("%d", &key); int index2 = binarySearch(arr, n, key); if (index2 == -1) { printf("没有找到该记录\n"); } else { printf("找到了该记录,位置为:%d\n", index2); } break; case 3: free(arr); return 0; default: printf("无效的选择,请重新输入\n"); break; } } }此程序的算法描述
这是一个简单的查找算法实现,包括顺序查找和二分查找两种方法。程序的算法描述如下:
1. 顺序查找算法:遍历整个查找表,逐个比较每个元素与目标关键字是否相等,如果找到则返回该元素的下标,否则返回 -1。
2. 二分查找算法:在有序的查找表中,将查找区间不断缩小一半,直到找到目标关键字或者查找区间为空为止。具体实现中,每次取查找区间的中间元素与目标关键字比较,如果相等则返回该元素的下标,如果目标关键字小于中间元素,则在左半部分继续查找,否则在右半部分继续查找。如果最终没有找到目标关键字,则返回 -1。
在程序中,首先用户需要输入一个查找表的长度和具体的关键字值,然后可以选择使用顺序查找或二分查找进行查找。如果找到了目标关键字,则输出该元素的下标,否则输出未找到该记录的提示。用户可以反复使用不同的查找方法查找不同的关键字,直到选择退出程序。
优化这段代码import java.util.Scanner; public class Grades { static class Student { enum Grade {Excellent, Fair, Good, Poor, Failed} static void score2(int g) { if(g/10>=6) { switch (g / 10) { case 10: Grade a = Grade.Excellent; System.out.println(a); break; case 9: Grade b = Grade.Excellent; System.out.println(b); break; case 8: Grade c = Grade.Good; System.out.println(c); break; case 7: Grade d = Grade.Fair; System.out.println(d); break; case 6: Grade e = Grade.Poor; System.out.println(e); break; default: Grade f = Grade.Failed; System.out.println(f); break; } } } public static void main(String[] args) { //输入学生人数 System.out.println("请输入学生数(>1的整数):"); Scanner num = new Scanner(System.in); int number = num.nextInt(); //输入学生成绩 System.out.println("请输入6位学生的Java成绩[0,100](以空格为间隔):"); Scanner sc = new Scanner(System.in);//输入成绩 String str = sc.nextLine(); //将输入数字以空格为界分开,并转为String数组 String[] s = str.split(" "); //String转为int int[] intArr = new int[str.length]; for (int i = 0; i < str.length; i++) { intArr[i] = Integer.parseInt(str[i]); } //遍历数组 for (int i = 0; i < s.length; i++) { //将遍历得到每个数组 用Integer.parseInt方法将String数组转为十进制的数 int grade = Integer.parseInt(s[i]); } for (int i = 0; i < s.length; i++) { System.out.println(s[i]); System.out.println(score2()); } } } }
这段代码可以进行优化,比如可以将输入学生成绩的部分改为使用循环来输入,而不是一次性输入所有学生成绩。另外,在score2方法中,可以使用if-else语句来代替switch语句,这样可以使代码更加简洁。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)