输入16,32等没问题,其它的就不会输出了,该怎么改进?或者有没更好的算法?
-------------------------
#include<stdio.h>
main()
{
int i;
printf("请输入您级别:");
scanf("%d",&i);
while(i>0)
if(i>=16){
print

展开全部
收起
3回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • 萌猫君

    17人对此回答表示赞同

    你的程序是想干吗,你的while(0)后面的{}括号呢,怎么不加呢?这样的话while循环只执行第一个if语句。
    如果你输入不能被16整除的数,比如说19那么执行完第一个循环之后i等于3,此时的i满足循环条件,但是不满足if条件,所以i永远等于3,在while中发生死循环现象,永远不能跳出来。如果你输入的数是16的倍数,那么i经过循环总有减到0的时候,这样就可以跳出循环,当然随后的两个if都不执行,程序正常结束。
    你该在while之后加上{}
    将程序改成这样
    #i
    展开
    17
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 墨离尘

    14人对此回答表示赞同

    改成这样就行了 少了2个ELSE
    #include<stdio.h>
    main()
    {
    int i;
    printf("请输入您级别:");
    scanf("%d",&i);
    while(i>0)
    if(i>=16){
    printf("¤");
    i-=16;
    }
    else
    展开
    14
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • fallingdown咋办

    7人对此回答表示赞同

    改成这样:效率会高一些,你后面几个判断的条件是多余的

    #include<stdio.h>
    main()
    {
    int i;
    printf("请输入您级别:");
    scanf("%d",&i);
    while(i>0)
    if(i>=16){
    printf("¤");
    i-=16;
    展开
    7
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部