求求帮助我

嘣,沙卡拉卡,嘣 2019-05-19 05:10:55
看看哪错了,我真的找不到错误啊
...全文
117 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_43659968 2019-05-20
  • 打赏
  • 举报
回复
继续烧脑下去,你写的这个程序有问题,一看你用的就是VC++6.0。抛弃它,跟我在ubuntu在写一遍,我就能告诉你怎么会事?微软的编译器,抱歉我不会微软的编译器写的软件
自信男孩 2019-05-20
  • 打赏
  • 举报
回复
引用 6 楼 jsx_SEVEN 的回复:
[quote=引用 3 楼 qq_45092516 的回复:]
[quote=引用 1 楼 jsx_SEVEN的回复:]for循环后面的分号去掉试试

没用,好烧脑啊[/quote]
加点空格啥的 看得清楚

#include <stdio.h>
#include <math.h>

void main()
{
int i, j, num = 0, k;
int a[4] = { 11,7,13,12 };

for (i = 0; i < 4; i++)
{
k = a[i];
int flag = 1;
for (j = 2; j < k; j++)
{
if (k % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
num++;
}
printf("%d", num);
}
[/quote]

+++
  • 打赏
  • 举报
回复
引用 7 楼 袁君元的回复:
你这个程序是逻辑问题。你的程序中if(k%j==0)时,应该执行两个操作,先执行flag=0;表明k不是素数,然后就break跳出循环。所以这里应该写成: if(k%j==0){flag=0;break;}可以看看这篇有关逻辑的文章,对你会有帮助。https://blog.csdn.net/weixin_43956598/article/details/90049508
谢谢!!!!!!!!!!
CaptainXue 2019-05-19
  • 打赏
  • 举报
回复
你这个程序是逻辑问题。你的程序中if(k%j==0)时,应该执行两个操作,先执行flag=0;表明k不是素数,然后就break跳出循环。所以这里应该写成: if(k%j==0){flag=0;break;}可以看看这篇有关逻辑的文章,对你会有帮助。https://blog.csdn.net/weixin_43956598/article/details/90049508
周末ZhouMo 2019-05-19
  • 打赏
  • 举报
回复
引用 3 楼 qq_45092516 的回复:
[quote=引用 1 楼 jsx_SEVEN的回复:]for循环后面的分号去掉试试
没用,好烧脑啊[/quote] 加点空格啥的 看得清楚

#include <stdio.h>
#include <math.h>

void main()
{
	int i, j, num = 0, k;
	int a[4] = { 11,7,13,12 };

	for (i = 0; i < 4; i++)
	{
		k = a[i];
		int flag = 1;
		for (j = 2; j < k; j++)
		{
			if (k % j == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
			num++;
	}
	printf("%d", num);
}
Isnis-fallen 2019-05-19
  • 打赏
  • 举报
回复
if(k%j==0) { flag=0; break; }
  • 打赏
  • 举报
回复
引用 2 楼 focuslight的回复:
第二个 for 循环那行不应加 ; 后面两行用 { }
还是有问题,我很难受
  • 打赏
  • 举报
回复
引用 1 楼 jsx_SEVEN的回复:
for循环后面的分号去掉试试
没用,好烧脑啊
Isnis-fallen 2019-05-19
  • 打赏
  • 举报
回复
第二个 for 循环那行不应加 ; 后面两行用 { }
周末ZhouMo 2019-05-19
  • 打赏
  • 举报
回复
for循环后面的分号去掉试试

69,373

社区成员

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

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