编程论坛
注册
登录
编程论坛
→
C语言论坛
任意输入一个不超过8位的正整数,将其转换成字符串输出。例如,输入正整数 986833,则输出字符串
吴佳俊
发布于 2020-04-19 11:59, 3129 次点击
任意输入一个不超过8位的正整数,将其转换成字符串输出。例如,输入正整数 986833,则输出字符串"986833"
限制:不用sprintf,不用高级语句,用数组形式
感谢大佬
7 回复
#2
飞天大烧卖
2020-04-19 12:37
#include<stdio.h>
int main(void)
{
int a[8]={0},i=0,j,b;
char c[8]={'\0'};
scanf("%d",&b);
while(b!=0)
{
a[i]=b%10;
b/=10;
i++;
}
if(i>7)
{
printf("error");
return 1;
}
for(b=0,--i,j=i;b<i+1;b++,j--)
{
c[b]=(a[j]+='0');
}
printf("%s",c);
return 0;
}
#3
forever74
2020-04-19 13:13
按要求不超过8位的话,定义char c[9]才是,还有个结束符要保存。
#4
吴佳俊
2020-04-19 13:17
回复 2楼 飞天大烧卖
大佬,我运行了一下,不行无法达到想要的结果’
#5
飞天大烧卖
2020-04-19 13:45
回复 4楼 吴佳俊
我不是大佬,按照楼上大佬说的改一下就可以了
#6
飞天大烧卖
2020-04-19 13:54
回复 4楼 吴佳俊
还有if(i>7)改成i>8。我的输出可以啊!!
#7
飞天大烧卖
2020-04-19 13:57
回复 4楼 吴佳俊
你要输出“”的话最后输出的时候加两句:printf("\"");
#8
吹水佬
2020-04-19 14:50
#include <stdio.h>
int main(void)
{
char s[9]={0};
int i,n;
scanf("%8d",&n);
for (i=7; i>=0 && n; n/=10,--i)
s[i] = n%10 + '0';
printf("%s\n",&s[i+1]);
return 0;
}
[此贴子已经被作者于2020-4-19 14:59编辑过]
1