为防止数据丢失使用二维数组来表示一位数组

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/lijiangjiajun/article/details/90520978

//题目w = 25 * (s)-200 * n;
//s = a[1] + a[2] + … + a[n]
//1<=n<=7
//90<a[i]<150
//用大数据求取w的最大值 并显示a最大值时的a[i]

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int main()
{
int a[10000][8] = { 0 }; //数组的最后一位用来存放n,二维数组当一维数组用,为了记录每一次的a[i],否则数据会丢失
int i = 0;
int j = 0;
int n = 0;
int w = 0;
int s = 0;
int max = 0; //记录最大值
int maxx = 0; //记录最大值所在的j
srand((unsigned int)time(NULL));
for (j = 0; j < 10000; j++)
{
n = rand() % 7 + 1;
a[j][7] = n;
for (i = 0; i < n; i++)
{
a[j][i] = rand() % (59) + 91; //锁定a[j][i]的范围
printf("a[%d][%d]=%d ", j, i, a[j][i]);
s = s + a[j][i]; //把a[j][i]全部加起来
}
printf(“n=%d “, a[j][7]);
printf(”\n”);
w = 25 * (s)-200 * n;
s = 0;

	if (w>max)
	{
		max = w;
		maxx = j;
	}

}
printf("最大值是%d ", max);
printf("此时n=%d ", a[maxx][7]);   //a[maxx][7]就是W最大时的n
for (i = 0; i < a[maxx][7]; i++)
{
	printf("a[%d][%d]=%d ", maxx, i, a[maxx][i]);
}
system("pause");
return 0;

}

猜你喜欢

转载自blog.csdn.net/lijiangjiajun/article/details/90520978