c语言编程题。注意,是求第1500个数,不是把1500表示成2,3,5的因式表达

 我来答
509964645
2014-09-26 · TA获得超过245个赞
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:145万
展开全部
//来bug了,要工作了,没帮你调试过,思路应该看得懂吧,自己调试一下
void test1()
{
int n = 0;
unsigned int value,temp_val;
int flag = 0;
value = 1;
while(1)
{
temp_val = value;
while(1)
{
if(0 != value%2 && 0 != value%3 && 0 != value%5)
{
flag = 0;
break;
}
if(0 == value%2)
{
value = value/2;
if(1 == value)
{
flag = 1;
break;
}
}
if(0 == value%3)
{
value = value/3;
if(1 == value)
{
flag = 1;
break;
}
}
if(0 == value%5)
{
value = value/5;
if(1 == value)
{
flag = 1;
break;
}
}
}
value++;
if(1 == flag)
{
n++;
printf("%d \n",temp_val);
if(1500 == n)
{
break;
}
}
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a5eb3e1
2014-09-26 · TA获得超过4448个赞
知道大有可为答主
回答量:3486
采纳率:60%
帮助的人:2661万
展开全部
#include <stdio.h>
#include <stdlib.h>

#define I 31
#define J 20
#define K 13
#define L (I * J * K)

int comp(const void *a, const void *b)
{
  unsigned long x = *(unsigned long *)a;
  unsigned long y = *(unsigned long *)b;
  return x > y ? 1 : x < y ? -1 : 0;
}

int main()
{
  int i, j, k, l = 0;
  unsigned long t[L], a, b, c;
  for (i = 0, a = 1; i <= I; i++, a *= 2)
    for (j = 0, b = 1; j <= J; j++, b *= 3)
      for (k = 0, c = 1; k <= K; k++, c *= 5)
        t[l++] = a * b * c;
  qsort(t, L, sizeof(unsigned long), comp);
  printf("%lu\n", t[1500 - 1]);
  return 0;
}
更多追问追答
追问

哪里不对啊,大神
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjan999
2014-09-26
知道答主
回答量:59
采纳率:100%
帮助的人:8.9万
展开全部
用三层循环生成1500个数,排序即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
琳琳哒
2014-09-26
知道答主
回答量:6
采纳率:0%
帮助的人:7822
展开全部
不会做
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式