这个问题在哪里呀?
这个程序这2个//去掉任何一个都会出错错误提示是这样。想不出哪里错了。 这个程序这2个//去掉任何一个都会出错错误提示是这样。
想不出哪里错了
帮把代码稍微改了一下.是可以正常运行了。
#include<stdio.h>
int main()
{
int i,a,b = 0, j;
char *p, in = {0}, s = {0};
_Bool h = 0;
p = in; //把指针指向数组的首元素的首地址,以便后面使用
printf("请输入一个整数: ");
scanf("%d",&i);
if(i < 0)
{
i = -i;
h =1;
}
for(j = 10; ; j*=10)
{
a = i %j; //把数字i的第 j/10位取出来
*p++ = a/(j / 10) + '0'; //是把变量a中的数字转换为字符形式存储到in的数组中,前面用p指向了数组a的首元素的首地址
i -= a; //改变变量i的值,减掉j/10位的值
b++; //这里把b做累加统计字符个数
if(i == 0)
{
a = 0;
if(h)
{
s = '-';
}
p--; //现在*p 的值为0或者控制符,移动指针p使他指向前一个已知字符,
while (b > 0)
{
s = *p--; //移动指针p把数组in里存储的字符赋给数组s
b--; //数组in里面字符个数减一
}
s = '\0';
break;
}
}
return 0;
}
程序这2个// 和i -= a;其实就是在把数值的每一位给提取并转换为字符
如果看不懂,就把指针和数组搞明白了,再来看这个, 代码是这样的这2个//去掉任何一个都会出错这个错误提示,为什么呀 本帖最后由 jackz007 于 2022-11-19 19:10 编辑
你这个程序什么功能?
你希望别人完整地敲一遍你的代码?????
要求助就必须贴代码文本!!! 如果去掉a=i%j;,没赋初值的a可以是任意值,下面凡是涉及a的运算后的值也是任意值
页:
[1]