讨教能不能这样设置二维数组

C语言 码拜 9年前 (2016-04-07) 760次浏览
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、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!

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;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明讨教能不能这样设置二维数组
喜欢 (0)
[1034331897@qq.com]
分享 (0)