一道循环结构的C语言题

TanChenbi 2012-11-02 05:06:38
下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。
#include<stdio.h>
int main()
{
int i=0,j,k;
do
{
i++;
k=316-13*i;
}while(k%11);
j=k/11;
printf("316=13*%d+11*%d",i,j);
return 0;
}

上面题的答案就是红色字显示的答案,还有个选项是k%11==0,我感觉这个选项也可以啊,
上机操作以后两个选项都可以实现,不过结果不同,想请大神们帮我细致的分析一下。
...全文
117 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
常如意 2012-11-02
  • 打赏
  • 举报
回复
k%11是看余数是否非零;0,11,22时k%11 为0,退出循环
k%11 == 0是看能否被11整除,能则为真,如0,11,22,k%11 == 0表达式为真,继续循环
二者完全相反
搬砖随想录 2012-11-02
  • 打赏
  • 举报
回复
while(k%11)表示当k%11的值非零时循环继续,为零时跳出循环
while(k%11 == 0)表示当k%11的值等于零时循环继续,如果不等于零跳出循环
easyrem 2012-11-02
  • 打赏
  • 举报
回复
while结果是false的时候退出,也就是为0的时候。
第一遍 == 返回的结果是false已经退出了
相反正确的时候 却不会退出

你调试一下,看结果不也可以了。
allenltiverson 2012-11-02
  • 打赏
  • 举报
回复
2楼真理。。。。
JiMoKuangXiangQu 2012-11-02
  • 打赏
  • 举报
回复
k%11表示除操作余数不为0;
k%11==0除操作余数为0.
帅得不敢出门 2012-11-02
  • 打赏
  • 举报
回复
k%11==0 肯定不行, 二者表达的意思是相反的. 你首次循环就退出了.

69,382

社区成员

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

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