全部问题 > 当前问题

b%=10在这个程序中是不是要等b大于十的时候再执行?

有以下程序
#include <stdio.h>
main()
{
  int a=1,b=2;
  while(a<6) {b+=a; a+=2; b%=10;}
  printf("%d,%d\n",a,b);
}

曰乐UZI 2015-9-16 11:07:34

共 8 个回答

嘿嘿大人 2015-9-16 11:10:50

这个等式等同于b=b%10,无论是否大于十都要执行

嘿嘿大人 2015-9-16 11:10:50

这个等式等同于b=b%10,无论是否大于十都要执行

苏善立 2015-9-16 11:11:58

不是,只要a小于6都在执行

曰乐UZI 2015-9-16 13:49:04

回复 嘿嘿大人:那如果b不大于十,这个式子的值不就是0,为什么不输出呢

最佳答案

嘿嘿大人 2015-9-16 14:12:14

回复 曰乐UZI

b=2

b+=a=3; a+=2=3; b%=10=3

b=3

b+=a=6; a+=2=5; b%=10=6

b=6

b+=a=11; a+=2=7; b%=10=1

a=7,b=1

分清楚求余符号%和求商符号/

曰乐UZI 2015-9-16 14:20:00

回复 嘿嘿大人:明白了,谢谢大人

嘿嘿大人 2015-9-16 14:21:38

回复 曰乐UZI:不用谢,仔细点就好,加油,嘿嘿

曰乐UZI 2015-9-16 14:25:43

回复 嘿嘿大人:恩恩,好的

问题来自: while循环和do循环
有以下程序
#include <stdio.h>
main()
{
  int a=1,b=2;
  while(a<6) {b+=a; a+=2; b%=10;}
  printf("%d,%d\n",a,b);
}
程序运行后的输出结果是 ______ 。
A. 5,11
B. 7,1
C. 7,11
D. 6,1
答案:B
解析:a=1,a&lt;6为真。b+=a,结果b=3;a+=2,结果a=3;b%=10,结果b=3。此时a=3,b=3。 a=3,a&lt;6为真。b+=a,结果b=6;a+=2,结果a=5;b%=10,结果b=6。此时a=5,b=6。 a=5,a&lt;6为真。b+=a,结果b=11;a+=2,结果a=7;b%=10,结果b=1。此时a=7,b=1。循环结束。因此选B。