for(i=0;i<4;i++)
{
for(j=i+1;j<5;j++)
{
sum[m] = sum[i]+sum[j];
jihe[m][2]={{i,j}};
m++;
}
}
本人想把第一维设置为一个变量,然后依次每一行存储两个值,i , j ,以此来实现 每行对应不同的 i , j 值,达到最后输入两数和最小时对应的 i , j 的目的。
解决方案
10
本人试下就知道了。
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
15
这个问题没那么复杂,两个数和最小,肯定是他们就是数组中最小的两个数,用两次循环找一下就行了,时间复杂度为O(n),你每两个数相加一下时间复杂度就变成O(n^2)了,参考代码如下
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define N 5
int main()
{
int a[N];
int i = 0;
int j = 0;
int minIndex1 = 0;
int minIndex2 = 1;
printf("请输入五个数:(用空格或回车隔开)\n");
for(i=0; i<N; i++){
scanf("%d", &a[i]);
}
for(j=0; j<N; j++){
if(a[minIndex1] > a[j]){
minIndex1 = j;
}
}
for(j=0; j<N; j++){
if(a[minIndex2]>a[j] && minIndex1!=j){
minIndex2 = j;
}
}
printf("和最小的两个数为:%d和%d\n", a[minIndex1], a[minIndex2]);
//system("pause");
return 0;
}