4399king 发表于 2020-10-25 10:12:17

编译没过,不知道啥问题



#include<stdio.h>
#include<math.h>
int main(){
    int a, b, c, d, e, t, num;
    int cnt = 0;
    while (scanf("%d %d", &a, &b) != EOF){
      for (num = a; num <= b; ++num){
            t = num;
            c = t % 10;
            t /= 10;
            d = t % 10;
            t /= 10;
            e = t % 10;
            if (num == c*c*c+ d*d*d + e*e*e){
                cnt++;
                if (cnt == 1)
                  printf("%d", num);
                else if (cnt > 1)
                  printf(" %d", num);
            }
      }
      if (cnt==0)
            printf("no\n");
      else
            printf("\n");
      }
            
    return 0;
}



   

风过无痕1989 发表于 2020-10-25 11:03:16

本帖最后由 风过无痕1989 于 2020-10-25 11:09 编辑

在 VC++6.0 中编译通过,此程序是个死循环 (while 相当于没有终止条件,因为 EOF 是不能通过键盘或其他输入设备输入的 ),我输入了10次,都因为执行了 if (cnt==0) 输出都是 no

风过无痕1989 发表于 2020-10-25 11:15:15

从你的程序第16行来看,你的目的应该是输出水仙花数我没时间了,要去上班了,给你一个输出水仙花数的程序作参考吧:


#include <stdio.h>
int main()
{
    int bai, shi, ge, n;
    printf("result is: ");
    for(n = 100;n < 1000;n++ )/*整数的取值范围*/
    {
      bai = n / 100;
      shi = (n - bai * 100) / 10;
      ge = n % 10;
      if(n == bai * bai * bai + shi * shi * shi + ge * ge * ge)/*各位上的立方和是否与原数n相等*/
            printf("%d", n);
    }
    printf("\n");
   
    return 0;
}
页: [1]
查看完整版本: 编译没过,不知道啥问题