当前位置: 代码迷 >> C语言 >> [求助]switch和break,我错在哪啊
  详细解决方案

[求助]switch和break,我错在哪啊

热度:240   发布时间:2007-09-17 22:19:52.0
[求助]switch和break,我错在哪啊

#include <conio.h>
#include <stdio.h>
#include <string.h>

void fun(char *a, int b[])
{
int i;

for (i=0;i<strlen(a);i++)
{
switch(a[i])
{
case('a'): b[0]++;break;
case('b'): b[1]++;break;
case('c'): b[2]++;break;
case('d'): b[3]++;break;
case('e'): b[4]++;break;
default: b[5]++;
}
}
}

main()
{ int i, b[6]; char a[100] = "bacd1b+ddep";
clrscr();
fun(a, b);
printf("The result is: ");
for (i=0; i<6; i++) printf("%d ", b[i]);
printf("\n");

运行不出预想结果

搜索更多相关的解决方案: switch  break  

----------------解决方案--------------------------------------------------------
int i, b[6]={0};
----------------解决方案--------------------------------------------------------

谢谢提醒


----------------解决方案--------------------------------------------------------
没这个 用法吧

写成
int b[6];

就好了

数组的缺点就在这 不能 动态创建

看你写的程序

应该没学到动态的问题吧
这是很简单的问题 你现在的写的程序都是静态的变量
简单的说 用的变量都要创建好
计算机不会根据你的需要给你创建的

呵呵 加油吧 为了 中国的软件开发!!
----------------解决方案--------------------------------------------------------

呵呵


----------------解决方案--------------------------------------------------------
b数组没有初始化
所以出来全是随机数
----------------解决方案--------------------------------------------------------
回复:(nova2201)[求助]switch和break,我错在哪啊
你错在没有将B[]初始化/ 就是给B[]赋值.
----------------解决方案--------------------------------------------------------

#include "conio.h"
#include "stdio.h"
#include "string.h"

void fun(char *a,int b[])
{
int i;
for(i=0;i<strlen(a);i++)
{
switch(a[i])
{
case('a'):
b[0]++;
break;
case('b'):
b[1]++;
break;
case('c'):
b[2]++;
break;
case('d'):
b[3]++;
break;
case('e'):
b[4]++;
break;
default:
b[5]++;
}
}
}

int main(void)
{
int i,b[6];
char a[100]="bacd1b+ddep";
clrscr();
fun(a,b);
printf("The result is: ");
for(i=0;i<6;i++)
printf("%d ",b[i]);
printf("\n");
getchar();
return 0;
}

显示结果:
The result is:1 2 1 3 1 3
显示很正常啊,你用的是什么编译器?我的是Win-TC。


----------------解决方案--------------------------------------------------------
  相关解决方案