如何获得用户输入的数组
本帖最后由 孜然爱爱 于 2022-4-12 21:52 编辑题目答案给的代码是Java的,我想用C语言来写出来,但是苦于不知道怎么用c实现数组的输入,即 如何将用户输入的两个任意的等长数组存到两个数组中,请各位兄弟帮忙看一下题目,帮忙解答一下:
给定两个整数数组:array1 array2,数组元素按升序排列
假设从arr1 arr2中分别取出一个元素,可构成一对元素
现在需要取出k对元素,并对取出的所有元素求和, 计算和的最小值
注意:两对元素对应arr1 arr2的下标是相同的视为同一对元素
输入描述:
输入两行数组arr1 arr2
每行首个数字为数组大小size 0<size<=100
arr1,2中的每个元素 0< <1000
接下来一行正整数k 0<k<=arr1.size * arr2.size
输出描述:
满足要求的最小值
例子:
//输入
// 3 1 1 2
// 3 1 2 3
// 2
//输出
// 4
//说明:用例中需要取两个元素,
// 取第一个数组第0个元素与第二个数组第0个元素组成一个元素
//
//取第一个数组第1个元素与第二个数组第0个元素组成一个元素
//
//求和为1+1+1+1=4 ,满足要求最小
————————————————
import java.util.*;
public class Test2 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String[] str1 = sc.nextLine().split("\\s+");
String[] str2 = sc.nextLine().split("\\s+");
int n = sc.nextInt();
ArrayList<Integer> arr = new ArrayList();
for(int i=1; i<str1.length; i++){
for(int j=1; j<str2.length; j++){
arr.add(Integer.parseInt(str1)+Integer.parseInt(str2));
}
}
System.out.println(arr);
Collections.sort(arr);
int sum = 0;
for(int i =0; i<n;i++){
sum+=arr.get(i);
}
System.out.println(sum);
}
}
#include <stdio.h>
int main()
{
int a=0,b=0;
scanf("%d",&a);
int array1;
array1=a;
for(int i=1;i<array1;i++)
{
scanf("%d",&array1);
}
scanf("%d",&b);
int array2;
array2=b;
for(int i=1;i<array2;i++)
{
scanf("%d",&array2);
}
int arr3;
int n = 0;
scanf("%d",&n);
int k=0;
for(int i=1;i<array1;i++)
{
for(int j=1;j<array2;j++)
{
arr3=array1;
k++;
arr3=array2;
k++;
}
}
printf("[");
for(int l=0;l<a+b;l++)
{
printf("%d",arr3);
if(l+1<a+b)
{
printf(",");
}
}
printf("]\n");
int sum = 0;
for(int i=0;i<n;i++)
{
sum+=arr3;
}
printf("%d\n",sum);
return 0;
}
这个肯定和你的题目的结果不同,这是我仿着java那个代码改的,有些问题。 本帖最后由 jhq999 于 2022-4-13 22:36 编辑
那个大神整个算法出来
没调试,大概率有bug
scanf("%d %d",&n,&m);
int array={0};
int sum={0};
for(i=0;i<2*n;i++)
{
scanf("%d",((int*)array)+i);
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)sum=array+array;
}
for(i=0;i<m;i++)
{
for(j=n*n-1;j>i;j--)
{
if(sum<sum)
{
tmp=sum;sum=sum;sum=tmp;
}
}
sum+=sum;
}
printf("%d",sum);
这个题目说的是啥?
char array1,array2;
for(int i=0;i<10;i++)
scanf("%d",&array1);//输入到array1
for(int i=0;i<10;i++)
scanf("%d",&array2); //输入到array2
页:
[1]