
为了防止程卜手序出现死循环,最好的办法中世当然是自习检查程序,保证逻辑正确就好了。如果不放心可以设置循环计数变量,嵌入循环,当溢出上限时型培嫌停止程序并报错即可。
测试下面的代码
#include<stdio.h>
#include<string.h>
int main()
{
char a[81]
int i=0,j=0
while ((a[i]=getchar())!='\n')
i++
a[i]='\0'
printf("%d %d \n %s\n",i,j,a)
while (a[j]=='0'&&a[j+1]!='\0')
j++
printf("%d %d \n %s\n",i,j,a)
if (j!=0)
for (i=0i<=(strlen(a)-j)i++)/*不建议这样写i<=(strlen(a)-j),
因为这是个动态的字符串,最好先求出字符串的长度在放进去,
二来更有效率,不用每次都计算字符串的长度*/
a[i]=a[i+j]
printf("%d %d \n %s",i,j,a)
fflush(stdin)//清除缓冲
getchar()
return 0
}
程序永远到达不了结束就是死循环。比如以下这样的描述就是典型的死循环。
程序开始:
第一行:令a等于1。
第二行:如果局猜a等于1,则回到第闭腊游一行轿销。
第三行:退出程序
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)