#include<stdio.h>
#include<stdlib.h>
typedef struct LNode
{ int en;
int cn;
struct LNode *next;
} LinkNode;
void InitList(LinkNode *&L)
{
L=(LinkNode *)malloc(sizeof(LinkNode));
L->next=NULL;
}
void DestoryList(LinkNode *&L)
{
LinkNode *pre=L,*p=L->next;
while(p!=NULL)
{ free(pre);
pre=p;
p=pre->next;
}
free(pre);
}
void print(LinkNode *&L) {
LinkNode *p =L->next;
while (p!=NULL) {
if (p->cn!=0)
printf("%d ",p->cn);
p=p->next;
}
printf("\n");
}
void equation(LinkNode *&L) {
LinkNode *p=L;
while (p->next!=NULL) {
p=p->next;
if (p->en==0){
p->cn=0;
}
else {
p->cn*=p->en;
p->en--;
}
}
}
int main()
{
LinkNode *L,*p=L;
int cn,en;
char s;
InitList(L);
while (scanf("%d %d",&cn,&en)!= EOF) {
LinkNode *node = (LinkNode *) malloc(sizeof(LinkNode));
node->cn=cn;
node->en=en;
node->next=NULL;
p->next=node;
p=node;
}
equation(L);
print(L);
DestoryList(L);
return 0;
}
uj5u.com熱心網友回復:
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode
{
int en;
int cn;
struct LNode *next;
}LinkNode;
void InitList(LinkNode *&L)
{
L = (LinkNode *)malloc(sizeof(LinkNode));
L->next=NULL;
}
void DestoryList(LinkNode *&L)
{
LinkNode *pre=L,*p=L->next;
while(p!=NULL)
{ free(pre);
pre=p;
p=pre->next;
}
free(pre);
}
void print(LinkNode *&L) {
LinkNode *p =L->next;
while (p!=NULL) {
if (p->cn!=0)
printf("%d ",p->cn);
p=p->next;
}
printf("\n");
}
void equation(LinkNode *&L) {
LinkNode *p=L;
while (p->next!=NULL) {
p=p->next;
if (p->en==0){
p->cn=0;
}
else {
p->cn*=p->en;
p->en--;
}
}
}
int main()
{
LinkNode *L,*p;//=L;
int cn,en;
char s;
InitList(L);
p = L;
while (scanf("%d %d",&cn,&en)!= EOF) {
LinkNode *node = (LinkNode *) malloc(sizeof(LinkNode));
node->cn=cn;
node->en=en;
node->next=NULL;
p->next=node;
p = node;
}
equation(L);
print(L);
DestoryList(L);
return 0;
}
供參考~
注意p指向L需要在初始化頭結點之后,否則p指向的還是L未初始化的野指標的地方。
uj5u.com熱心網友回復:
#include<stdio.h>#include<stdlib.h>
typedef struct LNode
{
int en;
int cn;
struct LNode *next;
}LinkNode;
void InitList(LinkNode **L)
{
*L = (LinkNode *)malloc(sizeof(LinkNode));
(*L)->next = NULL;
}
void DestoryList(LinkNode **L)
{
LinkNode *pre = *L, *p =(*L)->next;
while (p != NULL)
{
free(pre);
pre = p;
p = pre->next;
}
free(pre);
}
void print(LinkNode *L) {
LinkNode *p = L->next;
if (L->next == NULL)
printf("0 0");
else{
while (p != NULL) {
if(p->en==-1)
p=p->next;
else{
printf("%d %d ", p->cn, p->en);
p = p->next;}
}
}
}
void equation(LinkNode **L) {
LinkNode *p = (*L)->next, *q;
while (p != NULL) {
q = p->next;
if (p->cn == 0){
p->next = q->next;
free(q);
}
else {
p->cn *= p->en;
p->en--;
}
p = p->next;
}
}
int main()
{
LinkNode *L = NULL, *p;
int cn, en;
InitList(&L);
p = L;
while (1) {
scanf("%d%d", &cn, &en);
LinkNode *node = (LinkNode *)malloc(sizeof(LinkNode));
node->cn = cn;
node->en = en;
p->next = node;
p = node;
if (getchar() == '\n') break;
}
p->next = NULL;
equation(&L);
print(L);
DestoryList(&L);
return 0;
}
uj5u.com熱心網友回復:
#include<stdio.h>#include<stdlib.h>
typedef struct LNode
{
int en;
int cn;
struct LNode *next;
}LinkNode;
void InitList(LinkNode **L)
{
*L = (LinkNode *)malloc(sizeof(LinkNode));
(*L)->next = NULL;
}
void DestoryList(LinkNode **L)
{
LinkNode *pre = *L, *p =(*L)->next;
while (p != NULL)
{
free(pre);
pre = p;
p = pre->next;
}
free(pre);
*L = NULL; // 釋放后記得設定為NULL
}
void print(LinkNode *L) {
LinkNode *p = L->next;
if (L->next == NULL)
printf("0 0");
else{
while (p != NULL) {
if(p->en==-1)
p=p->next;
else{
printf("%d %d ", p->cn, p->en);
p = p->next;}
}
}
}
void equation(LinkNode **L) {
LinkNode *p = (*L);
if ( p == NULL) return;
while( p->next ) {
p->next->cn *= p->next->en;
p->next->en--;
if ( p->next->en == -1 ) {
LinkNode * q = p->next;
p->next = q->next;
free(q);
} else
p = p->next;
}
}
int main()
{
LinkNode *L = NULL, *p;
int cn, en;
InitList(&L);
p = L;
while (1) {
scanf("%d%d", &cn, &en);
LinkNode *node = (LinkNode *)malloc(sizeof(LinkNode));
node->cn = cn;
node->en = en;
node->next = p->next;
p->next = node;
if (getchar() == '\n') break;
};
print(L);
equation(&L);
print(L);
DestoryList(&L);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/104420.html
標籤:C++ 語言
下一篇:下面這條陳述句在編譯的時候為什么顯示[Error] void value not ignored as it ought to be
