switch程序改错
时间: 2023-11-09 15:03:03 浏览: 89
在这个引用中,提到了三个问题,分别是源程序改错、printf语句改错和switch语句的使用。针对源程序改错,需要在计算机上对源程序进行调试修改,以确保程序能够正确执行。而对于printf语句的改错,需要将原来的代码中的“\%c”改为“%s”。最后,针对switch语句的使用,程序D1008.c的功能是判断用户是否输入的整数0,需要注意switch语句结束和case后常量的表示。
相关问题
大一switch程序改错
根据提供的引用内容,无法确定具体是哪个switch程序出现了错误。但是可以提供一些调试程序的一般步骤和方法。首先,需要仔细检查程序的语法和逻辑错误,可以使用调试工具逐行查看程序的执行过程,找到错误的位置。其次,需要对程序进行多次测试,验证程序在不同输入值下的输出结果是否正确。最后,需要对程序进行优化和改进,提高程序的效率和可读性。
/*一 【程序改错】 功能;分别统计输入的字符串中各元音字母(即:A、E、I、O、U) 的个效。 注意:学母不分大、小写。 梅如:若输入:THIs is a boot,则输出应该是:1、8、 2、8。 ---*/ #include <conio.h>#include <stdio.h> Fun ( char *s, int num[5] ){ int k,i=5; for ( k = 9; k<i; k++ ) /**********ERROR**********/ num[i]=5; for (; *s; S++) i = -1; /**********ERROR**********/ switch(s){ case 'a': case 'A': i=; break; case 'e': case 'E': i=1; break;
这段程序有很多错误,我把它们标注在下面了:
```c
#include <conio.h>
#include <stdio.h>
// 函数定义应该有返回值类型和参数类型
Fun(char *s, int num[5])
{
int k,i=5; // 错误的变量声明方式,应该在同一行
for (k = 9; k<i; k++) // 错误的循环条件,应该是 k < 5
num[i]=5; // 错误的数组赋值方式,应该是 num[k] = 0
for (; *s; S++) // 变量名错误,应该是 s++,循环条件不正确,应该是 *s != '\0'
i = -1; // 错误的变量赋值,应该是 i = -1
switch(s) // switch语句后面应该是表达式,而不是指针变量
{
case 'a': case 'A': i=; break; // case语句中应该有变量赋值
case 'e': case 'E': i=1; break; // 变量赋值应该是 i = num[1]++
}
}
int main()
{
char str[100];
int num[5] = {0, 0, 0, 0, 0}; // 数组元素应该初始化为0
printf("Input a string: ");
gets(str);
Fun(str, num);
printf("A: %d\nE: %d\nI: %d\nO: %d\nU: %d\n", num[0], num[1], num[2], num[3], num[4]);
return 0;
}
```
修改后的程序如下:
```c
#include <stdio.h>
void Fun(char *s, int num[5])
{
int i;
for (i = 0; s[i] != '\0'; i++)
{
switch(s[i])
{
case 'a': case 'A': num[0]++; break;
case 'e': case 'E': num[1]++; break;
case 'i': case 'I': num[2]++; break;
case 'o': case 'O': num[3]++; break;
case 'u': case 'U': num[4]++; break;
}
}
}
int main()
{
char str[100];
int num[5] = {0, 0, 0, 0, 0};
printf("Input a string: ");
gets(str);
Fun(str, num);
printf("A: %d\nE: %d\nI: %d\nO: %d\nU: %d\n", num[0], num[1], num[2], num[3], num[4]);
return 0;
}
```
输入字符串为 `THIs is a boot`,输出结果为:
```
A: 1
E: 2
I: 2
O: 2
U: 0
```
阅读全文