C语言

前云 2009-05-18 11:12:11
main()
{
int a[12],i;
for(i=0;;i++)
{
scanf("%d",&a[i]);
if(a[i]==0) break;
}
for(i=0;;i++)
{if(a[i]%2!=0&&a[i]%3!=0)
{ if(a[i]==0) break;
printf("%d ",a[i]);

}
}
}
第二个for语句总在循环,
哪里错了。
...全文
60 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
日光降临 2009-05-18
  • 打赏
  • 举报
回复

#include <stdio.h>

int main()
{
int a[12],i;
for(i=0;;i++)
{
scanf("%d",&a[i]);
if(a[i]==0) break;
}

for(i=0;;i++)
{
if(a[i]%2 != 0 && a[i] %3 !=0)
{
if(a[i]==0) break;//程序外层循环没有控制退出,只能靠break跳出,但是a[i]==0的时候根本
//不能满足(a[i]%2 != 0 && a[i] %3 !=0)条件判断,所以这条break语句
//永远不会执行, 程序也就永远循环.
printf("%d",a[i]);
}
}
}

douchog_13k 2009-05-18
  • 打赏
  • 举报
回复

main()
{
int a[12],i;
for(i=0;;i++)
{
scanf("%d",&a[i]);
if(a[i]==0) break;
}
for(i=0;;i++)
{
if(a[i]==0) break;
if(a[i]%2!=0&&a[i]%3!=0) //当a[i]==0时a[i]%3==0 if 中测试条件为false
{
printf("%d ",a[i]);
}
}
}

nadoo 2009-05-18
  • 打赏
  • 举报
回复

#include "stdio.h"
#include "string.h"
#include "malloc.h"

main()
{
int a[12], i;

for (i = 0;;i++)
{
scanf("%d", &a[i]);
if (a[i] == 0) break;
}

for (i = 0; i < sizeof(a); i++)
{
if (a[i] == 0) break;
if (a[i] % 2 != 0 && a[i] % 3 != 0)
{
printf("%d ", a[i]);
}
}
}

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧