#include <stdio.h>
#include <stdlib.h>
struct node
{
int date;
struct node *next;
} *head;
int main()
{
struct node *p,*r,*q;
int n;
head=(struct node *)malloc(sizeof(struct node));
head->next=NULL; //建立一个头结点。
p=(struct node *)malloc(sizeof(struct node));
p=head;
scanf("%d",&n);
while(n--)
{
r=(struct node *)malloc(sizeof(struct node));
scanf("%d",&r->date);
p->next=r;
r->next=NULL;
p=r;
}
p=head;
head->next->next=NULL;
while(p!=NULL)
{
q=p->next;
q->next=p;
p=q;
if(p->next!=NULL)
q=q->next;
}
while(p!=NULL)
{
printf("%d",p->date);
if(p->next!=NULL)
printf(" ");
p=p->next;
}
return 0;
}
怎么改啊,大神
c语言问题,为什么陷入死循环?(当我输入时3.14])就是好奇输入符号会怎样...
会返回失败, 并且 ] 还在,这样, 循环就会一直在 ] 这里返回失败,于是就死循环了.你可以看scanf函数的返回值的说明.
这个C程序代码为什么会出现死循环?错在哪里?希望高手指点。
至于死循环,只能说有可能编译器会生成死循环的代码(gcc环境下并不陷入死循环)。因为i,j的声明虽然在a[N][N]之前,但实际内存上可能位于a数组之后。因此在越界访问数组并赋值时,有可能将i或j重新赋值,导致循环无法跳出。
C语言到#结束,但为什么我的程序会陷入死循环啊?
因为是在while前输入的数据,循环过程中这个数据一直存在。把scanf("%f%c%f",&a,&b,&c); while(b!='#'){改成while(scanf("%f %c%f",&a,&b,&c)==3 && b!='#'){。把所有的continue;删除。
c语言,为何这是死循环?
while(1)表示无条件执行循环(因为1表示真),而它的循环体是后面跟着的那个语句:也就是printf("%d",k-=3);所以程序会一直运行printf("%d",k-=3); 永远出不来。这条语句就相当于 while(1){ printf("%d",k-=3);} 加上大括号里面可以加多个语句作为循环体,如果没加大括号就是while后面的...
C语言 陷入死循环
把scanf("%d",&i); 改成 if ( scanf("%d",&i)==0) i=4; 其他不变,就可以了。
C语言陷入死循环的原因
知道不进行无符号类型转换,程序会陷入死循环了啊,却不知道原因。看下面:这个c的最大正整数只能到127,c<255永远成立。情况是:c++到127之后变为了负数(称为算术溢出),一直加又从0开始了,所以死循环。把 char c=10;改为 int c;赋值没用,因为for循环又重新赋值了。至于出现蜂鸣声,是打印的...
c语言中 为什么有时候输入.就陷入死循环了???
这个 for 循环中 i 始终不变,而且 i 始终满足循环条件,那么当程序执行时就永远陷在这个循环中出不来了,也就是死循环,这应该叫临界条件不明确。还有的时候,计算量太大,比如调用递归函数太多,计算比较慢,你也可能认为是陷入死循环了。也有是因为计算机系统本身的原因。不过这种情况比较少。总的来...
这个C语言程序输入字母会出现死循环,为什么?怎么办?
输入数据后,判断一下scanf函数的返回状态,返回0则读取失败。失败的原因有很多可能,比如你的这道例子,指定输入数字,但是却输入了字符,就会返回0,而且scanf不会有动作。由于num没有初始化,所以它是一个垃圾值,这就是死循环的原因。另外,如果想要输入指定字符退出的话,在多加一个判断即可。
有什么问题 死循环了 C语言
\/\/while (str[i]!=0) \/\/ 死循环是这里导致的,这里只判断了第一个数不为零,然后进入了死循环 逻辑也有问题,帮你修正如下,仔细和你的对比下,并调试通过。望采纳!!!include<stdio.h> void main(){ int m,n,t,count=0,i;int str[100]={'0'};scanf("%d%d",&m,&n); \/\/ ...
c语言陷入死循环,应该怎么改呢?拜托拜托,求大佬解答
1、DateCheck()函数是否处理有问题 2、输入要英文模式下数字,3、单步骤调试一下