当前位置: 代码迷 >> C语言 >> 这个函数为什么不对/?
  详细解决方案

这个函数为什么不对/?

热度:185   发布时间:2007-05-11 11:46:34.0
这个函数为什么不对/?
题目是:输入一个字符串,内涵数字和非数字字符。将其中连续的数字作为一个证书,依次村放到数组b中,例如123存放在b[0],456放在b[1]。。。。统计共有多少个整数,并输出。。。
我做的答案是:
#include<stdio.h>
void main()
{
char a[20],*q;
int b[20];
int s,i,t=0,j=0;
printf("write:");
gets(a);
q=a;
for(i=0;q!='\0';i++,q++)
{if ((*q>='0')&&(*q<='9'))
{s=*q-48;
t=t*10+s;
b[j]=t;
}
else {if(t!=0) ++j;
t=0;
}
}
printf("There are %d Z\nThey are:\n",j+1);
for(i=0;i<=j;i++)
printf("%d ",b[i]);
printf("\n");
}
。哎,在机子上运行总是不对,但自己找不出哪不对。。。求大家帮忙下。。
搜索更多相关的解决方案: 函数  

----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
char a[20],*q;
int b[20];
int s,i,t=0,j=0;
printf("write:");
gets(a);
q=a;
for(;*q!='\0';q++)
{
if ((*q>='0')&&(*q<='9'))
{
s=*q-48;
t=t*10+s;
}
else
{
if(t!=0)
b[j++]=t;
t=0;
}
}
b[j]=t;
printf("There are %d Z\nThey are:\n",j+1);
for(i=0;i<=j;i++)
printf("%d ",b[i]);
printf("\n");
}
----------------解决方案--------------------------------------------------------
太谢谢了,,,,终于找到错的地方了,主要就是10行里的直接搞q地址了。。谢谢啊。。
但是,为什么不报错也没警告啊。。。。。。
不懂,。
新学生。。
----------------解决方案--------------------------------------------------------
没有语法错误是不会报的,但是你要是用的是vc++6.0如果在运行时候出现除以0,或者数组超过界限都会出现运行错误
----------------解决方案--------------------------------------------------------
  相关解决方案