#include<cstring>
#include <string>
#include <iostream>
using namespace std;
typedef struct Node
{ int data;
struct Node *next;
}LNode,*LinkList;
void CreateList_L(LinkList &L,int n)
{
int i;
LinkList p;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
for(i = n;i>0;--i)
{
p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
p->next=L->next;L->next=p;
}
}
int sum(LinkList &L,int m,int n)
{
int i,s=0;
int a[20];
for(i=0;i<m;i++)
{
L=L->next;
}
for(i=m;i<=n;i++)
{
a[i-m]=L->data;
L=L->next;
}
return s;
}
void PrintList(LinkList &L,int x,int y)
{
int i;
for(i=0;i<x;i++)
{
L=L->next;
}
for(i=x;i<=y;i++)
{
cout<<L->data<<" ";
L=L->next;
}
}
int main()
{
int i,j,n,x=0,y=0,max=0;
LinkList L=NULL;
cout<<"請輸入人數"<<endl;
cin>>n;
CreateList_L(L,n);
for(i=1;i<=n;i++)
{
for(j=i;j<=n;j++)
{
if(sum(L,i,j)>max)
{
max=sum(L,i,j);
x=i;
y=j;
}
}
}
PrintList(L,x,y);
cout<<endl;
cout<<"子鏈表的和的最大值為:"<<max<<endl;
return 0;
}
除錯的時候在 L=L->next; 發生訪問沖突,不知道哪里有問題
uj5u.com熱心網友回復:
你得看一下是哪里next的問題,除錯一下createlist函式uj5u.com熱心網友回復:
我這里只顯示沒有宣告malloc函式,但是我把那兩行改成用new申請動態記憶體就可以了uj5u.com熱心網友回復:
這個代碼c與c++混用不是個好習慣轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/37737.html
標籤:新手樂園
上一篇:C語言
