Justin1 发表于 2020-4-6 12:09:46

请问鱼酱紫们我这个代码如何使用break函数结束循环呢

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

int main()
{
        int a , b , i , j, sum;
       
        printf("请输入一个整数:");
        scanf("%d", &a);
       
        if ( a > 2)
        {
                b = pow(a,3);
                for ( i = 1 ; i <b; i += 2)
                {
                        sum = 0;
                        for ( j = i ; j < b ; j += 2 )
                        {
                                sum += j;
                                if (sum == b)
                                {
                                        if ( (j - i) > 4)
                                        {
                                                printf(" %d = %d + %d +.....+%d", b , i , i+2, j);
                                               
                                        }
                                        else
                                        {
                                                printf(" %d = %d + %d + %d" , b , i , i+2 , i+4);
                                        }
                       
                                }
                          break;
                        }
                       
                }
    }
    else
    {
            printf("请输入大于2的整数");
        }

    return 0;
}


Justin1 发表于 2020-4-6 12:10:50

break 去掉可以运行程序但是结果不对
输入4的话按道理按说只要一个解后就结束循环,可是有好几个

Justin1 发表于 2020-4-6 12:13:05

#include <stdio.h>

int main()
{
      int i, j, n, cubed, sum = 0;

      printf("请输入一个整数:");
      scanf("%d", &n);

      cubed = n * n * n;

      for (i = 1; i < cubed; i += 2)
      {
                for (j = i; j < cubed; j += 2)
                {
                        sum += j;
                        if (sum == cubed)
                        {
                              if (j - i > 4)
                              {
                                        printf("%d = %d + %d ... + %d\n", cubed, i, i+2, j);
                              }
                              else
                              {
                                        printf("%d = %d + %d + %d\n", cubed, i, i+2, i+4);
                              }
                              goto FINDIT;
                        }

                        if (sum > cubed)
                        {
                              sum = 0;
                              break;
                        }
                }
      }

FINDIT:

      return 0;
}

甲鱼用的是goto函数,可是一般不是不用嘛

蓝天灬唯一 发表于 2020-4-6 12:14:27

qiuyouzhi 发表于 2020-4-6 12:44:06

Justin1 发表于 2020-4-6 12:13
甲鱼用的是goto函数,可是一般不是不用嘛

一般是不用,但是存在即合理
特别多重循环时可以用
页: [1]
查看完整版本: 请问鱼酱紫们我这个代码如何使用break函数结束循环呢