
C语言问题,请高手解答!谢谢
#include<stdio.h>constintSIZE=100;intmain(){intheight[SIZE],num[SIZE],n,ans;inti,j;sc...
#include <stdio.h>
const int SIZE = 100;
int main()
{
int height[SIZE], num[SIZE], n, ans; int i, j;
scanf("%d", &n);
for (i = 0; i < n; i++)
{ scanf("%d",
&height[i]); num[i] = 1;
for (j = 0; j < i; j++) {
if ((height[j] < height[i]) && (num[j] >= num[i]))
num[i] = num[j]+1;
}
}
ans = 0;
for (i = 0; i < n; i++) {
if (num[i] > ans) ans = num[i];
}
printf("%d\n", ans);
return 0;
}
输入:
6
2 5 3 11 12 4
输出:————
4是怎么得出来的? 展开
const int SIZE = 100;
int main()
{
int height[SIZE], num[SIZE], n, ans; int i, j;
scanf("%d", &n);
for (i = 0; i < n; i++)
{ scanf("%d",
&height[i]); num[i] = 1;
for (j = 0; j < i; j++) {
if ((height[j] < height[i]) && (num[j] >= num[i]))
num[i] = num[j]+1;
}
}
ans = 0;
for (i = 0; i < n; i++) {
if (num[i] > ans) ans = num[i];
}
printf("%d\n", ans);
return 0;
}
输入:
6
2 5 3 11 12 4
输出:————
4是怎么得出来的? 展开
1个回答
展开全部
num[i]记录的是整个数组height里有几个数比i这个位置的数字大,后面的循环是找到num[i]里的最大值,就是4 (5>2, 3>2, 11>2, 12>2),其他值分别是2,2,1......
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询