gpt4 book ai didi

c - 从 C 中的 long 中提取单个数字

转载 作者:太空狗 更新时间:2023-10-29 17:10:12 26 4
gpt4 key购买 nike

我正在为我的 C 类(class)(第一门编程类(class))做家庭作业。作业的一部分是编写代码,让用户输入一个长达 9 位的数字,程序需要确定这个数字是否在“增加”/“真正增加”/“减少”/“真正减少”/“增减”/“真减实增”/“不减不增”。 (共7个选项)

因为这是我们的第一个作业,所以我们不能使用类里面所教内容以外的任何东西:

do-while, for, while 循环, else-if, if,打破,继续scanf、printf、modulo 和基本运算符

(除了 stdio.h,我们不能使用任何库)

就是这样。我不能使用数组或 getchar 或任何类似的东西。我可以用来接收用户输入的唯一函数是 scanf

到目前为止,我已经用流程图和所有内容编写了算法,但我需要将用户的输入分成不同的数字。

例如,如果用户输入“1234...”,我想在a中保存1,在b中保存2,依此类推,然后对所有数字进行比较以确定它们是否都相等(增加和减少)或是否 a > b >c ...(减少)等等。

我知道如何使用 % 和/运算符分隔每个数字,但我不知道如何将这些值“保存”在我以后可以用于比较的变量中。

这是我目前所拥有的:

printf("Enter a positive number : ");

do {
scanf ("%ld", &number);
if (number < 0) {
printf ("invalid input...enter a positive integer: ");
continue;
}
else break;
} while (1);

while (number < 0) {
a = number % 10;
number = number - a;
number = number / 10;
b = a;
}

最佳答案

为什么不将它们扫描为字符(字符串)?然后您可以通过数组偏移量访问它们,方法是从 ASCII 字符代码中减去偏移量 48。您可以使用 ctype.h 中的 isdigit 验证字符是否为数字。


编辑

由于您的教授设置的令人难以置信的心不在焉的限制:

#include <stdio.h>

int main()
{
int number;
printf("Enter a positive number: ");

do
{
scanf ("%ld", &number);
if (number < 0)
{
printf ("invalid input...enter a positive integer: ");
continue;
}
else break;
} while (1);

int a = -1;
int b = -1;
int c = -1;
int d = -1;
int e = -1;
int f = -1;
int g = -1;
int h = -1;
int i = -1;

while (number > 0)
{
if (a < 0) a = number % 10;
else if (b < 0) b = number % 10;
else if (c < 0) c = number % 10;
else if (d < 0) d = number % 10;
else if (e < 0) e = number % 10;
else if (f < 0) f = number % 10;
else if (g < 0) g = number % 10;
else if (h < 0) h = number % 10;
else if (i < 0) i = number % 10;

number /= 10;
}

/* Printing for verification. */

printf("%i", a);
printf("%i", b);
printf("%i", c);
printf("%i", d);
printf("%i", e);
printf("%i", f);
printf("%i", g);
printf("%i", h);
printf("%i", i);

return 0;
}

末尾的有效数字将为正数,因此这些是您验证以满足不同条件的数字。

关于c - 从 C 中的 long 中提取单个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10045158/

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