gpt4 book ai didi

c - 编写C程序来计算根

转载 作者:行者123 更新时间:2023-11-30 19:05:56 25 4
gpt4 key购买 nike

x 的数值根计算如下:a) 计算所有 x(十进制)数字的总和 y;b) 如果 y 大于 10,则将 x 设置为 y 并转到步骤 a)。否则,y 是 x 的数值根。因此,10、202 和 875 的数根分别是 1、4 和 2。

这是我的代码:

#include <stdio.h>

int main(void)
{

int x, y, index, found;

found = 0;
scanf("%d", &x);

if (x < 0)
{
printf("The input number must be nonnegative.\n");
}
else
{
y = 0;
index = x % 10;

while (found != 1)
{
while (x > 10)
{
y = y + index;
x = (x - index) / 10;
index = x % 10;
}

y = y + index;

if (y < 10)
{
printf("%d\n", y);
found = 1;
}
else
{
x = y;
}
}
}

return 0;
}

我的输出总是数字,如“-2147483623”等。任何帮助将不胜感激。

最佳答案

使用简单的函数可以大大简化您的解决方案。请参阅以下使用 Ada 语言的解决方案:

with Ada.Integer_Text_IO; use Ada.Integer_Text_Io;
with Ada.Text_IO; use Ada.Text_IO;

procedure Main is
Inpt_Value : Natural;
Root : Natural := 0;
function Find_Root(X : Natural) return Natural is
Value : Natural := X;
Root : Natural := 0;
begin
while Value > 0 loop
Root := Root + (Value mod 10);
Value := Value / 10;
end loop;
return Root;
end Find_Root;

begin
Put("Enter a non-negative integer: ");
Get(Item => Inpt_Value);
Root := Find_Root(Inpt_Value);
while Root > 10 loop
Root := Find_Root(Root);
end loop;
Put_Line(Root'Image);
end Main;

关于c - 编写C程序来计算根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48916334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com