一个不知道怎么提出的问题
老早就想向大家救助了 是这样的 我想做合数分解质数和的问题 但是卡在从a[n]中取K个数出来这里(K正在循环)尝试了N种方法 最后觉得只有在函数中套用本身有可能实现 但还是失败了 于是写下了如下程序实验
void loop(int j)
{
int a = 1;
for(a=1 ; a<4 ; a++)
if (j != 3)
{
j += 1;
printf("%d",a)
goto loop;
}
if (j == 3)
{
printf("%d",a);
j = 0;
}
void main(void)
{
int j = 1;
loop(j);
}
希望他输出111,112,113如此循环 然而并非如此 不知道哪里不对 心急如焚 本以为今天一定可以完成的
还请各位大大出手相助 谢谢
----------------解决方案--------------------------------------------------------
你的goto loop准备往哪里跳转啊..是想跳出循环呢(没有语句标号啊!)还是想递归调用啊?(好象没有这种递归方法吧!)
----------------解决方案--------------------------------------------------------
goto 如果不是万不得已,还是少用吧。
----------------解决方案--------------------------------------------------------
明显源代码缺失,不清楚楼主意思
----------------解决方案--------------------------------------------------------
不知是否楼主想要的
可以修改宏N、MIN、MAX来改变输出的范围#include "stdio.h"
#define N 3 //N表示要输出几位数
#define MIN 1 //MIN表示每位上可能出现的最小值
#define MAX 9 //MAX表示每位上可能出现的最大值
void loop(int n,int *arr) //n表示当前是左边数第几位,arr是存放数字的数组指针
{
int i,j;
for(i=MIN; i<=MAX; i++)
{
arr[n-1] = i;
if(N == n)
{
j=0;
do
{
printf("%d",arr[j++]);
}while(j<N);
printf(",");
}
else
{
loop(n+1,arr);
}
if(N-1 == n)
{
printf("\n");
}
}
}
int main()
{
int i=1;
int a[N];
loop(i,a);
return 0;
}
----------------解决方案--------------------------------------------------------
合数分解质数和的问题 并且是不相同的 这个很简单 但是要求最小的那就很郁闷了 那个我也分析了很9 最后还是搜索+删除 能接受 要是合数分解质数和的问题 那你就循环分解质数 合数分解质数和的问题 并且是不相同的 那就从2开始循环到最后 不知道LZ 要求的是什么
----------------解决方案--------------------------------------------------------
感谢大家先 尤其是5楼 要的就是这个 5楼代码实在的仔细 连,细节都处理了 我要多多学习
另外昨天实在是心情郁闷 没仔细看代码就发了 嘿嘿 下次一定注意
----------------解决方案--------------------------------------------------------