C语言 分离 整数 成 单个 数字,求修改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 分离 整数 成 单个 数字,求修改相关的知识,希望对你有一定的参考价值。

for里的两种办法,为何一种不行

#include<stdio.h>

main()

int a[]=0,b[200]=0,i=0,ge,shi,bai,qian,j=0,tmp;
printf("1000-5000出现的回文:\n");
for(i=1000;i<=5000;i++)

qian=i/1000;
bai=(i%1000)/100;
shi=(i%100)/10;
ge=i/10;

/*
ge=i%10;
tmp=i/10;

shi=tmp%10;
tmp=tmp/10;

bai=tmp%10;
qian=tmp/10;
*/

if((ge==qian)&&(bai==shi))

b[j]=i;
printf("%5d",b[j++]);
if(j%5==0)
printf("\n");


两种方法都可以的。尤其是第二种,用于数组或位数不确定的,更为方便。
主要是你有一个语句写错了:
应该是ge=i%10; 而你写成ge=i/10;了。
参考技术A 程序好乱 看不懂嘞,另为 你这个程序到底想实现什么功能 看懂意思了 帮你写一个吧 你程序里 ge=i/10;这个就不对嘛 i还是1000 除以10等于多少给了个追问

就是1000-5000里 千位与个位相同并且百位与十位相同的数字

追答

#include
main()

int i,ge,shi,bai,qian,j;
printf("1000-5000出现的回文:\n");
for(i=1000;i<=5000;i++)

qian=i/1000;
bai=(i-(qian*1000))/100;
shi=(i-(qian*1000+bai*100))/10;
ge=i-(qian*1000+bai*100+shi*10);
j=ge*1000+shi*100+bai*10+qian;
if(j==i)
printf("%d\t%d\n",i,j);

参考技术B ge=i/10; 改为ge=i%10;

C语言中如何把浮点型转换为字符型

浮点型转换为字符型一般需要计算的,比如现在浮点型是414.15f
转换为字符型,那么就需要将这串数据转换为ASCII码,单个数字单个数字转换:
定义一个缓冲区:char
Buffer[6]用于存放这几个数字;
接着:
将浮点型放大,转换为整型:(int)(414.15
*
100)
=
41415d
逐个取值:
for(i=0;i<6;i++)

41415
%
10
=
5
;
//求除以10的余数,从各位开始取值
10*10
=
100

//将除数放大10倍,一个循环后就编程了100,两个循环后是1000,以此求取各位上的数字;
Buffer[i]
=余数+'0';
//将各个位上的数字转化成字符型,存入缓冲区
参考技术A 一、C语言中数值型数据分为两大类:整型和浮点型
整型:char
int
short
long
浮点型:float(单精度)
double(双精度)
二、浮点型数据转存到字符串中
char
str[30];
//定义一个字符数组,来存储数据
double
d=123.456;
//定义一个浮点型变量d
sprintf(str,"%f",
d
);
//格式串同printf()格式要求
sprintf(str,"%.2f",
d
);
//保留两位小数,第三位四舍五入
三、整型数据转存到字符串中
char
str[30];
int
i=123;
sprintf(str,
"%d",
i
);
四、0-9之间的数据转为字符
C语言中,字符型数据在存储时,实际上存储的是字符的ASCII值,字符'0'到'9'对应的ASCII是连续的,其值为48-57,所以,0-9数值转为字符时,只需要加上'0'就可以了,如:
char
ch;
int
i;
i=1;
ch=i+'0'
;
printf("ch=%c
ascii=%d",
ch,
ch
);
//按%c输出,就是字符1,按%d输出就是ASCII值49

以上是关于C语言 分离 整数 成 单个 数字,求修改的主要内容,如果未能解决你的问题,请参考以下文章

c语言中实现输入一个数字字符,然后转换成整数数字输出.怎么做?

C语言 如何将字符串转换成数字。不用指针和函数库,求解答

连续正整数的和 C语言 不知道如何处理这个细节

c语言输入数字转换成2进制字符串原理

C语言将字符转为整数

c语言,求任意一个整数各位数字之积