C中的丰富数字
问题描述:
我有一个编程任务,我真的很难过。问题是:C中的丰富数字
写一个程序,读取一个数字列表,并为每个数字,确定并打印出该数字是否丰富。
输入规格 1.第一个整数输入为正整数n,表示下一个测试用例的数量。 2.接下来的n个输入都是单个正整数,每个输入都要确定数量是否丰富。
输出规范 输出与两个以下格式为每个输入数的一行: 测试用例#T:X是丰富的。 测试用例#t:X不丰富。
现在这是我写的所有,我不知道如何弄清楚数量丰富的部分。
#include <stdio.h>
#include <stdlib.h>
int main(){
int n, i, array [] = {n};
printf("Please enter n followed by n numbers:");
scanf(" %d", &n);
for (i=0; i<n; i++){
scanf(" %d", &array[n]);
}
system ("pause");
return 0;
}
答
丰富的数字是一个非常简单的概念 - 你可以找到在*的信息:我觉得http://en.wikipedia.org/wiki/Abundant_number
如果你只想任何解决方案(不是最快的),你可以明确地找到所有除数及其每个数字的总和。
答
首先,...
int n, i, array [] = {n};
不会做你认为它;它声明array
只包含1个元素,并且一个元素初始化为值n
(尚未自行初始化,因此该值将不确定)。它将无法保存n
值。
根据您给出的规范,您实际上不需要存储整个输入数字列表;你应该能够读取一个,测试丰,然后读了下,测试丰,等于是你的代码的结构是这样的:
int n = 0;
...
printf("Please enter n followed by n numbers:");
scanf(" %d", &n);
for (int i = 0; i < n; i++)
{
int candidate;
scanf("%d", &candidate); // read the next input
printf("%d is%s abundant\n",
candidate,
!test(candidate) ? " NOT" : ""); // test the next input and
// print NOT if the test fails
}
的printf
陈述是写作的一种简洁的方式
if (test(candidate) == 0)
printf("%d is NOT abundant\n", candidate);
else
printf("%d is abundan\n", candidate);
的test
功能是你将需要弄清楚自己的东西,但它的外形将是
- 找到的正确除数输入值
- 萨姆在一起
- 该结果进行比较,以所述输入
- 返回1是结果比输入,0大否则。
好吧,我会咬:“丰富的数字”的定义是什么? –
我不认为在分配这个任务之前,“分配内存”这个词在这个类中被覆盖了吗? – WhozCraig
请查看帮助文本https:// *。com/help/how-to-ask,查看SO上欢迎哪些类型的问题。你没有解释你的问题,你没有提供真正的代码,与丰富的数字有关......投票结束。 –