> 信息中心

给定一个整数数组,返回这两个数字的索引,使它们加到一个特定的目标。请问该怎么做?

来源:百度知道 编辑:杨美丽
有网友碰到过这样的给定一个整数数组,返回这两个数字的索引,使它们加到一个特定的目标。请问该怎么做?,问题详细内容为:例子:给定num=[2,7,11,15],目标=9,因为num[O]+num[1]=2+7=9,返回[o,1]。...例子:
给定num=[2,7,11,15],目标=9,
因为num[O]+num[1]=2+7=9,返回[o,1]。展开,我搜你通过互联网收集了相关的一些解决方案,希望对有过相同或者相似问题的网友提供帮助,具体如下:

网友提供的解决方案1:
#include <stdio.h>
#include <stdlib.h>
int main(){
int n,target,i,j;
int *array;
scanf("%d %d",&n,&target);
array = (int *)malloc(n*sizeof(int));//动态一维数组
for(i=0;i<n;i++)
scanf("%d",array+i);
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(array[i]+array[j]==target)
printf("%d %d\n",i,j);
}
}
free(array);
return 0;
} 更多追问追答 追问 请问运行的时候要怎么输入? 追答 n是数组包含的元素个数,target是目标
动态数组申请n个空间,然后输入n个整数是数组的元素。 追问 for(i=0;i<n;i++)
scanf("%d",array+i);
最后问一下,这怎么理解? 追答 指针学了吗?
如果定义了一个数组int a[10] ={1,2,3}
那么定义一个指针 int *array = a;
指针变量array的内容就是数组a的首地址
array+i = &a[i];
如果指针没学的话,你就定义一个固定大小的数组 本回答被提问者和网友采纳
请注意,本站信息均由系统收集自互联网,相关信息仅供参考,医疗等重要信息请以正规途径为最终意见,本站不承担任何责任!

www.wosoni.com false 互联网 http://www.wosoni.com/b/mmmsnm/cccidckdehggfkhihgk.html report 935 网友提供的解决方案1:#include <stdio.h>#include <stdlib.h>int main(){int n,target,i,j;int *array;scanf("%d %d",&n,&target);array = (int *)malloc(n*sizeof(int));//动态一维数组for(i=0;i<n;i++)scanf("%d",array+i);for(i=0;i<n;i++){f

热门图片

经济金融企业管理法律法规社会民生科学教育降生活体育运动文化艺术电子数码电脑网络娱乐休闲行政地区心理分析医疗卫生