c - 如何在C中打印每个第二个数字
问题描述
我的任务是打印 C 中给定 long 的每隔一个数字。我的代码如下所示:
long credit;
int mod, mod1, var;
int main(void)
{
credit = get_long("n: \n");
for (mod = -1; credit > 0; credit /= 10)
{
mod = credit % 10;
for(mod1 = 1; mod1 <= mod; mod1+=2)
{
for (var = 1; var <= mod1; var++)
{
if(var == mod)
{
printf("%i ", var);
}
}
}
}
return 0;
}
不幸的是,它只打印给定长度的奇数。不管中间有多少个偶数。我想知道我选择的方式(嵌套 for 循环 + if 语句)是否是正确的做法。
注意:我不是在寻找现成的解决方案。我正在寻找提示,因为我想自己发现解决方案。
解决方案
好吧,您可以通过取模 10 来获得最后一位数字,然后您可以通过将该数字除以 100 来去除 2 位数字,如果您这样做直到数字等于 0,您就会得到每个第二位数字,如下所示:
x /= 10; //just offsetting it by one more digit (so you get even and not odd numbers)
while(x > 0)
{
printf("%lld", x % 10);
x /= 100;
}
推荐阅读
- javascript - Javascript按钮在页面加载时运行一次点击事件本身并且在点击时不起作用
- c# - Binding a RadCombobox inside a radgrid
- html - 进度条中的动画背景 (HTML5) Shadow DOM
- python - 初始化脚本在 databricks 笔记本中运行良好,但在附加到集群时失败
- r - Reproducing a published image in ggplot : stacked barplot?
- r - 使用 topGO 进行基因集富集分析中的过时 GO 术语
- javascript - Javascript async 和 await 是否等同于多线程?
- bash - 使用bash中所有参数的函数?
- php - 如何在 PHP 表单上获取 $_FILES['uploadtFile']['error'] 的值?
- android - 从android中的webview打开(启动)instagram应用程序的延迟