【问题标题】:Need help in writing this multiplication code在编写此乘法代码时需要帮助
【发布时间】:2025-11-21 15:00:01
【问题描述】:

我需要在输出中显示乘法过程。例如:- 输入是两个数字(比如 325 和 4405) 输出将是:-

    325
  *4405
  -----
   1625
     0
 1300
1300
-------
1431625

注意:- 空格数应该是最少的。

我不需要确切的代码。 只需告诉我应该使用哪个属性或方式来在每一行中获得正确的空间。或者我应该如何继续获得输出。

【问题讨论】:

  • 这里有一个关于在 C 中使用 printf format specifiers 的教程。(不是反对票)特别注意诸如@987654323 之类的例子@(在数值前面提供前导空格。
  • 非常感谢@ryyker。正在寻找这种东西,但找不到它。但是当输入变化时怎么办?(即当每个输入中没有空格是可变的时)
  • 数字是怎么输入的?通过使用 scanf()? 的用户输入,从文件中读取?如果作为字符串,您可以使用 strlen() 知道最终将转换为数字的长度。或者,如果使用数值,您可以测试范围:if(x<10) else if((x>=10)&&(x<100) else if...
  • @ryyker 感谢您再次提供帮助。数字是使用 scanf() 从用户那里获取的。
  • 谢谢@ryyker。请举个例子,会有很大帮助的。

标签: c formatting output multiplication spaces


【解决方案1】:

下面是一个简单的例子,说明如何使用 printf 制作恒定长度的打印输出:

int main(void)
{

    char a[6][7]={"1","22","333","4444","55555","666666"};
    int i;
    int value;

    for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
    {
        value = atoi(a[i]);
        printf("%07d\n", value); //with leading zeros
        printf("% 7d\n", value); //with spaces
    }

    getchar();
    return 0;
}

这是输出:

【讨论】:

  • 感谢@ryyker 非常感谢。这真的很有帮助。我想我现在可以做到了。
最近更新 更多