我对这个作业有问题:
写一个 100 个正数的数组,直到出现负数;然后检查数组按升序排列的序列数个,然后写入数组中第一个最长的序列,这意味着如果我有 2 个升序序列有 4 个数字,我将写入前 4 个数字出现
例如:数组: 12, 3, 4 , 23, 5 , 46, 5, 6 , 7, 78 , 67 , 68 , 134 , 45 , 46 , 47 , 67 , 11 , 23 , 18 , -3
系列数:4
最长系列:5 6 7
我的工作 ;
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define size 100
void Series()
{
int arr[size],i=0,count=0,num,NumberOfSeries=0,seriesLong=0;
printf("Enter to 100 positive integers negative to stop n");
do{
scanf("%d",&num);
arr[i]=num;
i++;
count++;
}while (num>0);
printf("the array is:n");
for(i=0;i<count;i++)
{
printf("%d ",arr[i]);
}
for(i=0;i<count-1;i++)
{
while(arr[i]==arr[i+1]-1)
{
i have no idea what to do here
}
}
}
#include <stdio.h>
int main(){
int arr[] = {12,3,4,23,5,46,5,6,7,78,67,68,134,45,46,47,67,11,23,18,-3};
int count = 21;
int i;
int pos=0, len=0;
for(i=0;i<count-1;++i){//i<count-1-len
int k;
for(k=0;arr[i+k]<arr[i+k+1];++k)
;
if(k>len){
len = k;
pos = i;
}
i += k;
}
printf("Longest series: ");
for(i=pos;i<=pos+len;++i)
printf("%d ", arr[i]);
printf("n");
return 0;
}