单向链表的取值问题
/**************权重计算
************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char END[10]="end";
typedef struct weight
{
weight *next;
char thing[10];
int weightnumber;
};
int main()
{
char str[10];
printf("\t\t权重分析程序 \n");
printf("\t\t\t\t\t版本:1.0.0.0430\n");
weight *head,*right,*copy;
head=(weight *) malloc (sizeof(weight));
right=head;
printf("请输入第一个权重项目");
scanf("%s",str);
strcpy(str,head->thing);
if(NULL!=right)
{
printf("输入end结束输入");
}
while(0!=strcmp(str,END))
{
right=(weight *) malloc (sizeof(weight));
strcpy((*right).thing,str);
(*right).next=right;
//text
printf("%d",right);
printf("请输入下一项名称");
scanf("%s",str);
printf("您输入的名称是%s",str);
}
right->next=NULL;//链表结尾置空
printf("输入完成,接下来进行比较,如果您认为第一项比第二项重要则输入1,否则输入0。");
printf("第一项\t\t\t 第二项");
right=head;//重置链表头结点
copy=head;
while(copy->next !=NULL)
{
while(right!=NULL)
{
printf("%s\t\t\t%s",(*right).thing,(*copy).thing);
scanf("%d",&right->weightnumber);
right->weightnumber=right->weightnumber+1;
right=right->next;
}
right=head;
copy=copy->next;
}
return 0;
}
红色处有问题
但是程序无法正常运行