| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1004 人关注过本帖
标题:这程序错在哪
只看楼主 加入收藏
南G
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-4-11
结帖率:0
收藏
已结贴  问题点数:20 回复次数:11 
这程序错在哪
#include <stdio.h>
void main()
 {
     int x,j=0,t,y,z,a=0;
     for(x=1;x<=500;x++)
           y=x/2;
     for(z=1;z<=y;z++)
      {z=(x%z==0)?z:0;
              a=a+z;
          if(x==a)
           printf("%d\t",x);
          j++;
           if(j%8==0)
         printf("\n");
      }
 }
判断1到500之间的完数,完数(一个数的所有因子和等于本身)
搜索更多相关主题的帖子: void include 
2010-04-11 17:04
南G
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-4-11
收藏
得分:0 
#include<stdio.h>
int a(int x)
{
  int j,t=1,i;
  int l=0;
  {
   for(i=1;i<=x;i++)
     for(j=1;j<=i;j++)
        t=t*j;
        if(j==i)
         l=t+l;
  }
  return l;
}
  void main()
 {
  int b;
  b=a(10);
  printf("%d\n",b);
  }
还有这个计算 1!到10!和
2010-04-11 17:08
kinwyb
Rank: 4
等 级:业余侠客
帖 子:134
专家分:244
注 册:2009-3-7
收藏
得分:3 
这程序错在哪
#include <stdio.h>
void main()
{
     int x,j=0,t,y,z,a=0;
     for(x=1;x<=500;x++)
           y=x/2;

     for(z=1;z<=y;z++)
      {z=(x%z==0)?z:0;
              a=a+z;
          if(x==a)
           printf("%d\t",x);
          j++;
           if(j%8==0)
         printf("\n");
      }
}
判断1到500之间的完数,完数(一个数的所有因子和等于本身)

没有理解楼主说的完数但是加颜色的部分好像没什么效果,最后结果都是y=250,x=500。要得到这结果直接赋值就行了。

学习c语言痛苦!!但是要坚持~~
2010-04-11 17:25
kinwyb
Rank: 4
等 级:业余侠客
帖 子:134
专家分:244
注 册:2009-3-7
收藏
得分:0 
计算 1!到10!和
#include<stdio.h>
int a(int x)
{
  int j,t=1,i;
  int l=0;
  for(i=1;i<=x;i++)
  {
    for(j=1;j<=i;j++)
       t=t*j;
    l=t+l;
    t=1;
  }
  return l;
}
  void main()
{
  int b;
  b=a(10);
  printf("%d\n",b);
}
改了一下

[ 本帖最后由 kinwyb 于 2010-4-11 18:05 编辑 ]

学习c语言痛苦!!但是要坚持~~
2010-04-11 17:47
心雨123aa
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:55
专家分:38
注 册:2010-3-28
收藏
得分:3 
参考:计算1!到10!的和
#include<stdio.h>
void main()
{
    int i=1,n=1;
    long int s=1,p=0;
    while(i<=10)
    {
        for(;n<=i;n++)
        {
            s=s*n;
        }
        p=p+s;
        i++;
    }
    printf("%ld",p);
}
2010-04-11 19:34
寒夜秋风3
Rank: 2
等 级:论坛游民
帖 子:25
专家分:22
注 册:2010-3-24
收藏
得分:3 
开始的循环就错了…如上说的
2010-04-12 02:47
h646028147
Rank: 2
等 级:论坛游民
帖 子:33
专家分:23
注 册:2010-4-12
收藏
得分:3 

#include <stdio.h>
void main()
{
     int x,j=0,t,y,z,a=0;
     for(x=1;x<=500;x++)
           y=x/2;        这里循环错了
     for(z=1;z<=y;z++)
      {z=(x%z==0)?z:0;
              a=a+z;      这里z的取值混乱,楼主本来是想用t吧,要不咋申请了一个变量t。
          if(x==a)
           printf("%d\t",x);
          j++;
           if(j%8==0)
         printf("\n");
      }
}
这段程序被我改了一下发现也是总不对,希望老鸟帮个忙!
#include <stdio.h>
void main()
{
    int x,y,z;
    int a=0;
    for(x=1;x<=500;x++)
    {
        for(z=1;z<x;z++)
        {
            if(x%z==0)
                y=z;
            else
                y=0;
            a=a+y;
        }
            if(x==a)
            printf("%d\n",a);
    }
}

2010-04-12 12:36
h646028147
Rank: 2
等 级:论坛游民
帖 子:33
专家分:23
注 册:2010-4-12
收藏
得分:0 
#include<stdio.h>
int a(int x)
{
  int j,t=1,i;
  int l=0;
  {
   for(i=1;i<=x;i++)
     for(j=1;j<=i;j++)
        t=t*j;
        if(j==i)
         l=t+l;
  }
  return l;
}
  void main()
{
  int b;
  b=a(10);
  printf("%d\n",b);
  }
2010-04-12 12:46
xueyuhanhai
Rank: 4
等 级:业余侠客
帖 子:90
专家分:238
注 册:2010-4-5
收藏
得分:3 
先说第二个:
#include<stdio.h>
int a(int x)
{
  int j,t=1,i;
  int l=0;
   for(i=1;i<=x;i++)
   {
     for(j=1;j<=i;j++)
          t=t*j;//求阶乘,第二个for循环的管辖范围到此为止;
      l=t+l;//求和
      t=1;//表示把重新置1,以便下一次求阶乘;
   }
  return l;
}
  void main()
{
  int b;
  b=a(10);
  printf("%d\n",b);
  }
首先main函数没有错,其次你的for循环的大括号错了。你的l表示求阶乘的和,t表示阶乘,i表示循环的次数,j是求一次循环的判断条件吧。我没有在tuborC上运行。呵呵。。。
再说第一个:
6是完数吧。6=1+2+3;我理解的不错吧。
#include <stdio.h>
void main()
{
     int x,j=0,t,y,z,a=0;
     for(x=1;x<=500;x++)
     {
           y=x/2;//表示如果在x/2之前除1之外没有数字可以整除他,那么他是一个素数;
           for(z=1;z<=y;z++)//z表示循环的条件吧;
           {
              t=(x%z==0)?z:0;
              a=a+t;//a表示除本身外其他因子的和;
            }
            if(x==a)
            {
                  printf("%d\t",x);
                  j++;
             }
             if(j%8==0)
                printf("\n");
      }   
}
楼主你的意思是输出1到500之间的所有的完数,并且每行有8个。我改了一下,程序我没有运行,呵呵。。。
2010-04-12 16:13
xueyuhanhai
Rank: 4
等 级:业余侠客
帖 子:90
专家分:238
注 册:2010-4-5
收藏
得分:0 
(接上)不好意思程序少一行,忘了把a归0了。
#include <stdio.h>
void main()
{
     int x,j=0,t,y,z,a=0;
     for(x=1;x<=500;x++)
     {
           y=x/2;//表示如果在x/2之前除1之外没有数字可以整除他,那么他是一个素数;
           for(z=1;z<=y;z++)//z表示循环的条件吧;
           {
              t=(x%z==0)?z:0;
              a=a+t;//a表示除本身外其他因子的和;
            }
            if(x==a)
            {
                  printf("%d\t",x);
                  j++;
             }
             a=0;//重新把a归0;
             if(j%8==0)
                printf("\n");
      }   
}
希望大家帮找错,一起进步。
2010-04-12 16:18
快速回复:这程序错在哪
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017471 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved