【发布时间】:2021-03-23 13:42:45
【问题描述】:
它在输入 vs 代码时停止....当它在在线 c 编译器 onlinegdb 上工作时。 我应该怎么做它也适用于vs代码,vs代码中的所有设置似乎也很好,但不知何故这段代码不起作用
#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
int exp;
struct node *next;
};
int main()
{
int n,i=0;
struct node *head,*newnode,*temp;
head=0;
printf("Enter number of elements:");
scanf("%d",&n);
while(i<n)
{
newnode= (struct node*)(malloc(sizeof(newnode)));
printf("Enter data:");
scanf("%d",&newnode->data);
printf("Enter Power:");
scanf("%d",&newnode->exp);
newnode -> next=0;
if(head==0)
{
head=temp=newnode;
}
else
{
temp->next=newnode;
temp=newnode;
}
temp->next=head;
i++;
}
struct node *temp1;
if(head==0)
{
printf("Empty list");
}
else
{
temp1=head;
while(temp1->next !=head)
{
printf("%d(x)^%d",temp1->data,temp1->exp);
temp1=temp1->next;
if((temp1->data)<0)
{
printf(" ");
}
else
{
printf(" + ");
}
}
printf("%d(x)^%d",temp1->data,temp1->exp);
}
}
【问题讨论】:
-
VS 代码只是一个编辑器,顺便说一句。如果它为您编译和运行代码,您可能已经安装了一些扩展。对于以后的问题,请为此类问题添加您的编译器名称和版本。
-
您是否使用了不允许复制粘贴文本的终端
-
我会将
while(temp1->next !=head)更改为while(temp1 != NULL),并将temp1 = temp1->next;移动到循环的底部。此外,我会用两行替换以newnode -> next=0;开头的 11 行缠结:newnode->next = head; head = newnode;
标签: c visual-studio-code vscode-settings