c - 返回意外值的基本程序
问题描述
我编写了一个程序来对用户的长号码进行一些基本操作。根据最终产品是否以 0 结尾,程序 printfs “有效”或“无效”。我尝试了一些 10 位数字,它工作正常,但任何 11 位或更高位的数字都只会返回“浮点异常”。我是否需要以某种方式更改语法以适应更长的数字?
int main(void)
{
long i = 0;
long b;
int m = 10;
int n = 1;
long number = get_long("Number?\n");
do
{
long a = number % m;
b = number - a;
long c = b % (m * 10);
long d = c / m;
long e = d *2;
if (e < 9)
{
i = i + e;
}
else
{
i = i + (e - 10 + 1);
}
{
m = m * 100;
}
}
while (b > 0);
do
{
long a = number % n;
b = number - a;
long c = b % (n * 10);
long d = c / n;
long e = d *2;
if (e < 9)
{
i = i + e;
}
else
{
i = i + (e - 10 + 1);
}
{
n = n * 100;
}
}
while (b > 0);
int f = i % 10;
if (f == 0)
{
printf("valid");
}
else
{
printf("invalid\n");
}
}
解决方案
推荐阅读
- laravel - 为什么会议详情页面没有出现图片?
- swift - Swift 4 - 获得按钮宽度的一半
- java - Clip 可以播放 mp3,但 OpenAL 只提供静音(Java)
- android-studio - Android Gradle 同步失败问题 Android Studio 3.1.4 & gradle 4.4
- css - Bootstrap 似乎弄乱了我的导航栏
- c# - 将 NextResult 函数与 datareader 一起使用时出错
- javascript - 从 API 数据分配嵌套数组对象
- javascript - if 和 else 都在嵌套循环中执行
- youtube-api - 如何使用令牌从 2 个不同的 youtube 配置文件执行操作
- java - 将 JDO 项目迁移到谷歌云端点 v2,服务器返回 NoClassDefFoundError