读书人

为什么会自动退出求解释解决方法

发布时间: 2012-03-09 21:42:55 作者: rapoo

为什么会自动退出,求解释
#include <stdio.h>
int sum[100],s[100];
int findmax (int code[],int num)
{
int i, max = 0;
for(i = 1;i <= num;i++)
{
if(max < code[i])
max = code[i];
}
return max;
}
void find(int code[],int k,int num)
{
int i,j,max;
if(k > 30)
return ;
max = findmax(code,num);
for(i = 1;i <= max;i++)
{
for(j = 1;j <= num;j ++)
if(code[j] == i)
sum[i] ++;
}
j = 1;
for(i = 1;i <= max;i ++)
if(sum[i] != 0)
{
code[j] = sum[i];
code[j+1] = i;
j += 2;
}
s[k] = j;
printf("%d\n",j-1);
if(k <= 30)
find(code,k+1,j-1);

}
int in()
{
int code[100],i;
for(i = 0; i < 100;i++)
sum[i] = 0;
s[1] = 1;
code[1] = 1;
find(code,2,1);
return 1;
}
int main()
{
int k;
k = in();
printf("%d",k);
for(;;)
{
scanf("%d",&k);
if(k == 0)
break;
printf("%d\n",s[k]);
}
return 0;
}

[解决办法]
加getchar();
[解决办法]
哈哈 一般在运行后都会推出,你最后要加两个getchar();吧!!!
[解决办法]
如果是一闪而过……最后加system("pause");头文件:#include <stdlib.h>
[解决办法]
int in()
{
int code[100],i;
for(i = 0; i < 100;i++)
sum[i] = 0;
s[1] = 1;
code[1] = 1;
find(code,2,1);
return 1;
}
此函数中code没有初始化

读书人网 >C语言

热点推荐