c - 不包括两次相同数字的数字总和
问题描述
(代码的目的是写在标题中)我的代码只有在我输入相同的数字一次并且最后像 - 123455 时才能工作,但如果我写 12345566 是有效的,或者 11234 它不会让有人知道为什么?我已经尝试了几天,但我失败了。
while(num)
{
dig = num % 10 // dig is the digit in the number
num /= 10 // num is the number the user enter
while(num2) // num2 = num
{
num2 /= 10
dig2 = num2 % 10 // dig2 is is the one digit next to dig
num2 /= 10
if(dig2 == dig) // here I check if I got the same digit twice to
// not include him
{
dig2 = 0
dig = 0
}
}
sum = sum + dig + hold
}
printf("%d", sum)
解决方案
好吧,您的代码几乎是正确的,但有些地方出了问题,
当您声明 num2 等于 num1 时,它已退出循环,因此一旦完成一个完整的循环执行,num2 仍保持小于零或为零(如果它是无符号整数),因此根据条件第二个循环在第一次运行后不会执行。
所以介意添加,
num2 = num1
在你的第一个循环内。
另外,您两次更新 num2 ,我认为您在第一次更改后不需要这样做。
我试过的完整代码
#include<stdio.h>
int main(void)
{
int num;
int num2;
int sum = 0;
int dig, dig2;
scanf_s("%d", &num);
while (num>0)
{
dig = num % 10; //dig is the digit in the number
num /= 10;
num2 = num;// num is the number the user enter
while (num2>0) // num2 = num
{
dig2 = num2 % 10; // dig2 is is the one digit next to dig
if(dig2 == dig) // here i check if i got the same digit twice to //not include him
{
dig = 0;
}
num2 /= 10;
}
sum = sum + dig ;
}
printf("%d", sum);
return 0;
}
推荐阅读
- android - Expo 或 React Native:即使应用程序未处于活动状态,如何为整个屏幕或仅部分着色
- pdf - 合并两个后记时 ghostscript 不保留页面级别参数
- nginx - Nginx 核心转储
- json - 在 Kotlin 中发布请求
- amazon-web-services - S3 Inventory:包括 S3 对象元数据?
- typescript - Typescript 在处理泛型时不理解推断类型
- c# - 颜色不统一显示的发射精灵
- javascript - 通过桶导入函数时出现“未捕获的 TypeError:Object(...) 不是函数”
- reactjs - redux-persist 不保留 React Native 上的状态
- c++ - 出现 2 个错误,该项目只有一个标准的 windows 窗体