c - scanf整数的每个数字并将整数存储在C中
问题描述
示例输入:12345
如您所见,我可以通过 scanf 存储每个数字“1”“2”“3”“4”“5”,但是如何存储整数“12345”?它可以发生在同一个 scanf 行内吗?
#include <stdio.h>
#include <math.h>
int main(){
int wholeNumber = 0;
int i1,i2,i3,i4,i5 = 0;
printf("\nPlease enter a five digit integer value.\n");
scanf("%1d%1d%1d%1d%1d",&i,&i2,&i3,&i4,&i5); //scanning each digit but
//how do I store the whole #?
return 0;
}
解决方案
我将尝试回答您的第一个问题。您可以简单地将输入的数字乘以 10 的倍数。让我们通过计算来展示它:
5*1 + 4*10 + 3*100 + 2*1000 + 1*10000 = 12345
因此,这是手动使用的代码:
...
scanf("%1d%1d%1d%1d%1d",&i,&i2,&i3,&i4,&i5);
i*=10000;
i2*=1000;
i3*=100;
i4*=10;
i5*=1;
...
推荐阅读
- azure - 在发票表中使用资源 GUID 映射 Azure 资源标记
- javascript - 打字稿最大调用堆栈大小超出错误
- java - 导入 org.apache.poi.xssf.usermodel.XSSFWorkbook 时出现问题;在硒 Java 项目中
- rust - Rust wasm:缺少在外部 crate 中定义的导出函数
- python - PyCharm 突出显示导入模块的行
- vim - Neovim 中的默认值不正确:无法创建备份文件(添加!覆盖)
- c - 宏未到达 .c 文件
- azure - Azure CD 管道找不到生成项目
- ios - 嵌入式 @Binding 不会更改值
- c# - 实体框架查询结果作为复杂对象列表