fgo官方四格:这个程序哪里错了啊怎么没有结果 啊?

来源:百度文库 编辑:高校问答 时间:2024/05/02 09:01:57
#define M 1000
#include <stdio.h>
void main()
{
int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;
int i,a,n,s;
for(a=2;a<=M;a++)
{n=0;
s=a;
for(i=1;i<a;i++)
if(a%i==0)
{n++;
s=s-i;
switch(n)
case1:
k1=i;break;
case2:
k2=i;break;
case3:
k3=i;break;
case4:
k4=i;break;
case5:
k5=i;break;
case6:
k5=i;break;
case7:
k6=i;break;
case8:
k8=8;break;
case9:
k9=i;break;
case10:
k10=i;break;
}
}
if(s==0)
{
printf("%d,its factors are",a);
if(n>1) printf("%d,%d",k1,k2);
if(n>2) printf("%d",k3);
if(n>3) printf("%d",k4);
if(n>4) printf("%d",k5);
if(n>5) printf("%d",k6);
if(n>6) printf("%d",k7);
if(n>7)printf("%d",k8);
if(n>8) printf("%d",k9);
if(n>9) printf("%d",k10);
printf("\n");
}

}

/* 好好看看就知道了*/

#define M 1000
#include <stdio.h>
void main()
{
int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;
int i,a,n,s;
for(a=2;a<=M;a++)
{n=0;
s=a;
for(i=1;i<a;i++)
if(a%i!=0)
{n++;
s=s-i;
switch(n)
{
case 1:
k1=i;break;
case 2:
k2=i;break;
case 3:
k3=i;break;
case 4:
k4=i;break;
case 5:
k5=i;break;
case 6:
k5=i;break;
case 7:
k6=i;break;
case 8:
k8=8;break;
case 9:
k9=i;break;
case 10:
k10=i;break;
}
} }
if(s)
{
printf("%d,its factors are",a);
if(n>1) printf("%d,%d\n",k1,k2);
if(n>2) printf("%d\n",k3);
if(n>3) printf("%d\n",k4);
if(n>4) printf("%d\n",k5);
if(n>5) printf("%d\n",k6);
if(n>6) printf("%d\n",k7);
if(n>7)printf("%d\n",k8);
if(n>8) printf("%d\n",k9);
if(n>9) printf("%d\n",k10);
printf("\n");
}

}

1.把#define M 1000 放到#include <stdio.h>后面
2.把case1 改成case 1 ... case10 改成 case 10
3.在switch(n)后面加{ 在case 10: k10=i;break; 后面加 }

运行到显示时s的值时-340,逻辑有问题。

1. case后面要加空格
2. switch后面的case语句要用{}包起来
3. case 6后面好像应该是k6,k7...,k5写重了

晕先把你程序要执行什么,写出来呀!这么一大堆,又写得这么乱怎么看呀……?

这是什么程序啊,要求是什么啊

路过,头晕晕