学习C语言编写求回文数代码后的程序运行问题。
代码为:#include<stdio.h>intmain(void){intval;intsum=0;intm;printf("请输入一个需要判断的数:\n");scan...
代码为:
# include <stdio.h>
int main(void)
{
int val;
int sum = 0;
int m;
printf("请输入一个需要判断的数:\n");
scanf("%d\n", &val);
m = val;
while (m)
{
sum = sum * 10 + m%10;
m/=10;
}
if (sum == val)
printf("Yes!\n");
else
printf("No!\n");
return 0;
}
问题1.在调试过程中,自己试数时由小到大,直到12345654321这个数字判断的结果为不是回文数,比它大的数也无法判断。请问这是什么原因?要判断的话应该如何更改代码?
2.我想可能是数太长,则无法存储于变量中,然后我把int val;int sum = 0;int m;改为long int val; long int sum = 0; long int m;再把scanf("%d\n", &val);改为了scanf("%ld\n", &val);还是无法判断,请问字节和存储数值的大小的关系具体是什么样的? 展开
# include <stdio.h>
int main(void)
{
int val;
int sum = 0;
int m;
printf("请输入一个需要判断的数:\n");
scanf("%d\n", &val);
m = val;
while (m)
{
sum = sum * 10 + m%10;
m/=10;
}
if (sum == val)
printf("Yes!\n");
else
printf("No!\n");
return 0;
}
问题1.在调试过程中,自己试数时由小到大,直到12345654321这个数字判断的结果为不是回文数,比它大的数也无法判断。请问这是什么原因?要判断的话应该如何更改代码?
2.我想可能是数太长,则无法存储于变量中,然后我把int val;int sum = 0;int m;改为long int val; long int sum = 0; long int m;再把scanf("%d\n", &val);改为了scanf("%ld\n", &val);还是无法判断,请问字节和存储数值的大小的关系具体是什么样的? 展开
1个回答
展开全部
你应该用char数组来判断回文 任意长度都可以
然后 int 和long 类型一般都是32位的 所以他们的结果是一样的 要64位 可以定义为 long long 类型
long long 变量;
然后 int 和long 类型一般都是32位的 所以他们的结果是一样的 要64位 可以定义为 long long 类型
long long 变量;
更多追问追答
追答
输入格式符号 %ld
追问
1.我的cpu是64位的,请问int和long int存储一个数所占内存长度有何不同?
2.int和long int存储数值的范围有什么不同?希望能具体到数值。
3.若要在原有的基础上改的话应该怎么改?
4.然后如果不这样写话,有什么更好的写法?
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机汇编程序是用汇编语言编写的程序,用于控制单片机的操作。汇编语言是一种比较接近计算机硬件语言的低级语言,相对于高级语言来说更容易理解和实现。下面是单片机汇编程序的基本步骤:1. 将代码和数据汇编到规定的段中。2. 在存储器中用未初始化的...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询