帮我调试几个程序啊

wangjian1987 2008-04-10 08:00:36
我编的一个程序,算出任意输入的两个数的最大公约数和最小公倍数,可是不知道怎么也调不对,帮下忙了。
main(){
int i,m,n;
system("cls");
printf("input m:\n");
scanf("%d",&m);
printf("input n:\n");
scanf("%d",&n);
for(i=m>n?n:m;i>0;i--){
if(!(m%i==0&&n%i==0))
continue;
printf("%d\n",i);
break;
}
for(!(i=m>n?m:n;i++;)){
if(i%m==0&&i%n==0)
continue;
printf("%d\n",i);
break;
}
getch();
}
求出a+aa+aaa+aaaa+......最后一项有n个a,有n项相加。a和n是自己输入的。帮我调试一下了
#include <stdio.h>
#include <math.h>
main(){
int n,a,i,j;
long b,sum1=0,sum2=0;
system("cls");
printf("input a=:\n");
scanf("%d",&a);
printf("input n=:\n");
scanf("%d",&n);
for(i=n;i>=1;i--){
for(j=i-1;j>=0;j--){
b=a*pow(10,j);
sum1+=b;
}
sum2+=sum1;
}
printf("\n%d",sum2);
getch();
}
最后一个了,求出1000以内的所有完数。(一个数若等于其所有质因数之和,则为完数。例6=1+2+3。帮忙调一下了
#include <math.h>
main(){
int i,j,k,b=0;
system("cls");
for(i=2;i<=1000;i++){
k=sqrt(i);
for(j=1;j<=k;j++)
if(i%j==0)
b+=j;
if(i==b)
printf("%d ",i);
}
getch();
}
...全文
76 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangjian1987 2008-04-11
  • 打赏
  • 举报
回复
我怎么才可以把那20分加给你,我还是第一次问问提,不知道规则啊。
wangjian1987 2008-04-11
  • 打赏
  • 举报
回复
我怎么才可以把那20分加给你,我还是第一次问问提,不知道规则啊。
Rachel_Chu 2008-04-10
  • 打赏
  • 举报
回复
呵呵,窝收回那句“还有同四楼一样,希望你注意自己的程序,可读性很低!!!!!! ”
窝把程序传上去后发现,它完全变样了。。。。。。
没话了!!


Rachel_Chu 2008-04-10
  • 打赏
  • 举报
回复
#include<stdio.h>

int main()
{
int i,m,n;
//这里问题system("cls");
//抱歉我没用过system("cls"),也不清楚它的用法
printf("input m:\n");
scanf("%d",&m);
printf("input n:\n");
scanf("%d",&n);
for(i=m>n?n:m;i>0;i--)
{
if(!(m%i==0&&n%i==0))
continue;
printf("%d\n",i);
break;
}
for(i=m>n?m:n;;i++) //这里问题 for(!(i=m>n?m:n;i++;))
{
if(i%m==0&&i%n==0) //这里你的算法有问题,窝改了一些
{
printf("%d\n",i);
break;
}
}
getchar(); //这里问题getch();
//其实这里只用到单纯的整数,getchar()根本不需要;
return 0;
}




还有同四楼一样,希望你注意自己的程序,可读性很低!!!!!!
myullian 2008-04-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 c_spark 的回复:]
C/C++ code#include <stdio.h>
#include <math.h>
#include <string.h>

#define N 1000

int prim[N];

void init()
{
int i,j,k,flag;
memset(prim,0,sizeof(prim));
prim[1] = 1;
prim[2] = 2;
prim[3] = 3;
for(i = 4,k =4; i<N; ++i)
{
for(flag=0,j = 2; j*j<i; ++j)
if(i%j == 0)
{
flag = 1;
break;…
[/Quote]
眼晕
losdot121 2008-04-10
  • 打赏
  • 举报
回复
程序还是规范点好,改了一个,其他自己看看吧
#include <stdio.h>

main()
{
int i,m,n;
printf("input m:\n");
scanf("%d",&m);
printf("input n:\n");
scanf("%d",&n);
for(i=m>n?n:m; i>0; i--)
{
if(!(m%i==0&&n%i==0))
continue;
printf("%d\n",i);
break;
}
for(i=m>n?m:n; ; i++) // 这里也是
{
if(!(i%m==0&&i%n==0)) //这个地方应该自己能看到错误的吧
continue;
printf("%d\n",i);
break;
}
//getch();
}
c_spark 2008-04-10
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <math.h>
#include <string.h>

#define N 1000

int prim[N];

void init()
{
int i,j,k,flag;
memset(prim,0,sizeof(prim));
prim[1] = 1;
prim[2] = 2;
prim[3] = 3;
for(i = 4,k =4; i<N; ++i)
{
for(flag=0,j = 2; j*j<i; ++j)
if(i%j == 0)
{
flag = 1;
break;
}
if(!flag) prim[k++] = i;

}
}

int main(){
init();
int i,j,sum,k,t;
int tmp[100];
for(i = 6; i<N; ++i)
{
for(j = 1,sum = 0, k = 0; j < N; ++j)
{
sum += prim[j];
tmp[k++] = prim[j];
if(sum == i)
{
printf("%d",tmp[0]);
for(t = 1; t < k; ++t)
printf("+%d",tmp[t]);
printf("=%d\n",i);
}
else if(sum > i)
break;
}
}
return 0;
}

输出:
1+2+3=6
1+2+3+4=10
1+2+3+4+5=15
1+2+3+4+5+7=22
1+2+3+4+5+7+9=31
1+2+3+4+5+7+9+11=42
1+2+3+4+5+7+9+11+13=55
1+2+3+4+5+7+9+11+13+17=72
1+2+3+4+5+7+9+11+13+17+19=91
1+2+3+4+5+7+9+11+13+17+19+23=114
1+2+3+4+5+7+9+11+13+17+19+23+25=139
1+2+3+4+5+7+9+11+13+17+19+23+25+29=168
1+2+3+4+5+7+9+11+13+17+19+23+25+29+31=199
1+2+3+4+5+7+9+11+13+17+19+23+25+29+31+37=236
1+2+3+4+5+7+9+11+13+17+19+23+25+29+31+37+41=277
1+2+3+4+5+7+9+11+13+17+19+23+25+29+31+37+41+43=320
1+2+3+4+5+7+9+11+13+17+19+23+25+29+31+37+41+43+47=367
1+2+3+4+5+7+9+11+13+17+19+23+25+29+31+37+41+43+47+49=416
1+2+3+4+5+7+9+11+13+17+19+23+25+29+31+37+41+43+47+49+53=469
1+2+3+4+5+7+9+11+13+17+19+23+25+29+31+37+41+43+47+49+53+59=528
1+2+3+4+5+7+9+11+13+17+19+23+25+29+31+37+41+43+47+49+53+59+61=589
1+2+3+4+5+7+9+11+13+17+19+23+25+29+31+37+41+43+47+49+53+59+61+67=656
1+2+3+4+5+7+9+11+13+17+19+23+25+29+31+37+41+43+47+49+53+59+61+67+71=727
1+2+3+4+5+7+9+11+13+17+19+23+25+29+31+37+41+43+47+49+53+59+61+67+71+73=800
1+2+3+4+5+7+9+11+13+17+19+23+25+29+31+37+41+43+47+49+53+59+61+67+71+73+79=879
1+2+3+4+5+7+9+11+13+17+19+23+25+29+31+37+41+43+47+49+53+59+61+67+71+73+79+83=962
c_spark 2008-04-10
  • 打赏
  • 举报
回复
#include  <stdio.h> 
#include <math.h>
int main(){
int n,a,i;
long b,sum=0;
//system("cls");
printf("input a=:\n");
scanf("%d",&a);
printf("input n=:\n");
scanf("%d",&n);
for(i=n; i>=1; i--)
{
sum += sum*10 + a;
}

printf("\n%d",sum1);
//getch();
return 0;
}
c_spark 2008-04-10
  • 打赏
  • 举报
回复

#include <stdio.h>

int gcd(int a, int b) //返回最大公约数
{
return b != 0 ? gcd(b,a%b) : a;
}

int main(){
int m,n;
scanf("%d %d",&m,&n);
int v = gcd(m,n);
printf("%d %d\n",v,m*n/v);//最小公倍数=m*n/最大公约数
return 0;
}

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧