在不使用数组的情况下选择c中n个输入的元素
Selecting elements of n inputs in c without using arrays
给定一个整数序列作为输入,我需要能够 select 该序列的特定整数,以便我可以在它们之间执行各种算术运算。
例如,给定这个输入我想知道序列的第三个和最后一个整数的总和。
编辑:在示例中,它将是 7 和 9
的总和
3
1
7
4
9
我必须遵循的条件是我不使用数组,所以我不能给每个整数一个索引。
另外我无法提前知道序列中会有多少个整数,所以我无法创建一个确定整数个数的输入。
为了读取输入,我想到了使用带有 scanf 条件的循环:
while (scanf("%d", &i) == 1);
我遇到的问题是如何 select 第三个和最后一个整数;如果是求奇数之和之类的事情,我会设置这样的条件:
if (i%2 != 0)
{
sum = sum + i;
i++;
}
大多数示例都是使用 for lopp 解决的,但它们要么具有声明的输入数量,要么输入只是连续的整数。
关于如何解决这个问题有什么建议吗?
您可以将简单的 for 循环与 scanf 条件混合使用,这样您就可以将索引关联到每个数字,并记住计算操作所需的数字(包括最后一个)。
这是一个例子:
int i, value;
int sum = 0;
int lastValue = 0;
for(i=1 ; scanf("%d", &value) == 1 ; ++i)
{
if(i == 3) /* select the third element */
sum += value;
lastValue = value; /* memorize the last element so far to compute it later */
}
sum += lastValue; /* assume that there is at least one value in the sequence */
给定一个整数序列作为输入,我需要能够 select 该序列的特定整数,以便我可以在它们之间执行各种算术运算。
例如,给定这个输入我想知道序列的第三个和最后一个整数的总和。 编辑:在示例中,它将是 7 和 9
的总和3
1
7
4
9
我必须遵循的条件是我不使用数组,所以我不能给每个整数一个索引。 另外我无法提前知道序列中会有多少个整数,所以我无法创建一个确定整数个数的输入。
为了读取输入,我想到了使用带有 scanf 条件的循环:
while (scanf("%d", &i) == 1);
我遇到的问题是如何 select 第三个和最后一个整数;如果是求奇数之和之类的事情,我会设置这样的条件:
if (i%2 != 0)
{
sum = sum + i;
i++;
}
大多数示例都是使用 for lopp 解决的,但它们要么具有声明的输入数量,要么输入只是连续的整数。 关于如何解决这个问题有什么建议吗?
您可以将简单的 for 循环与 scanf 条件混合使用,这样您就可以将索引关联到每个数字,并记住计算操作所需的数字(包括最后一个)。
这是一个例子:
int i, value;
int sum = 0;
int lastValue = 0;
for(i=1 ; scanf("%d", &value) == 1 ; ++i)
{
if(i == 3) /* select the third element */
sum += value;
lastValue = value; /* memorize the last element so far to compute it later */
}
sum += lastValue; /* assume that there is at least one value in the sequence */