)已知一个整数列表 array1 和一个目标值 t,现要求array1数组中找出和为目标值的两个元素,并将它们所在数组下标值打印出来。 如:列表 array1 = [1, 3, 5, 7],目标值 t = 6,那么由于 array1[0] + array1[2] = 1 + 5 = 6,所以打印结果是:[0, 2]
时间: 2023-03-31 11:02:27 浏览: 101
答:可以使用双重循环来遍历列表 array1,找到和为目标值 t 的两个元素,并将它们所在数组下标值打印出来。具体实现可以参考以下代码:
```c
#include <stdio.h>
int main() {
int array1[] = {1, 3, 5, 7};
int target = 6;
int len = sizeof(array1) / sizeof(int);
int i, j;
for (i = ; i < len; i++) {
for (j = i + 1; j < len; j++) {
if (array1[i] + array1[j] == target) {
printf("[%d, %d]\n", i, j);
}
}
}
return ;
}
```
输出结果为:
```
[, 2]
```
说明在列表 array1 中,下标为 和 2 的两个元素的和为目标值 6。
相关问题
已知一个整数列表 array1 和一个目标值 t,现要求array1数组中找出和为目标值的两个元素,并将它们所在数组下标值打印出来。
好的,这是一个关于算法的问题。我们可以使用哈希表来解决这个问题。首先,我们可以遍历整个数组,将每个元素与目标值的差值作为键,将该元素的下标作为值存储在哈希表中。然后,我们再次遍历整个数组,对于每个元素,我们可以在哈希表中查找是否存在与该元素相加等于目标值的元素。如果存在,我们就可以将它们的下标打印出来。
已知数组n1,n2中各存放了两个20位整数的值,编写一个程序,我
可以计算出这两个整数的和。
很高兴回答你的问题。以下是一个简单的 C 语言程序,可以计算出两个20位整数的和:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 21
int main() {
char n1[MAX_LEN], n2[MAX_LEN], sum[MAX_LEN];
int carry = ;
// 读入两个20位整数
scanf("%s %s", n1, n2);
// 从低位到高位逐位相加
for (int i = MAX_LEN - 2; i >= ; i--) {
int digit1 = i < strlen(n1) ? n1[i] - '' : ;
int digit2 = i < strlen(n2) ? n2[i] - '' : ;
int digit_sum = digit1 + digit2 + carry;
carry = digit_sum / 10;
sum[i + 1] = digit_sum % 10 + '';
}
// 处理最高位的进位
sum[] = carry + '';
// 输出结果
printf("%s\n", sum);
return ;
}
```
这个程序使用了一个字符数组来存储输入的整数和它们的和,从低位到高位逐位相加,并处理进位。最后输出结果即可。