简单的C语言问题/*输入一个字符
你指出的地方都不是问题的所在。
你最大的问题在于你的数组不够大,容纳不了你那么多的数据。你的字符数组只能容纳20个元素,但是你输入的确有27个,数组直接溢出了。
还有就是你自己定义的变量的含义你自己没有搞清楚,i是数量,m为字符串中的每一个整数,但是你进行整数数量判断的时候,居然用的是if (m==0) 这一句,所以输出错误,应该是if (i==0) 。
所以我建议,能少用全局变量就尽量少用,定义变量名也尽量有意义。
在你的基础上做了些微修改的代码:
#include
int m,i=0;
int *t;
void main()
{
void tongji(char *p);
ch...全部
你指出的地方都不是问题的所在。
你最大的问题在于你的数组不够大,容纳不了你那么多的数据。你的字符数组只能容纳20个元素,但是你输入的确有27个,数组直接溢出了。
还有就是你自己定义的变量的含义你自己没有搞清楚,i是数量,m为字符串中的每一个整数,但是你进行整数数量判断的时候,居然用的是if (m==0) 这一句,所以输出错误,应该是if (i==0) 。
所以我建议,能少用全局变量就尽量少用,定义变量名也尽量有意义。
在你的基础上做了些微修改的代码:
#include
int m,i=0;
int *t;
void main()
{
void tongji(char *p);
char str[50];
int k,a[50];
char*q;
printf("input a string:\n");
gets(str); /*字符串的输入*/
printf("\n");
q=str;
t=a;
tongji(q);
if (i==0)
printf("There is no numbers!\n");
else
{ printf("There is %d numbers:\n",i);
for (k=0;k='0'&&*p='0'&&*p<='9';p++)
m=m*10+(*p-48); /*m为字符串中的每一个整数*/
b[i]=m;
i++;
}
else
p++;
}
for(j=0;j收起