Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能帮我做一个C编程任务吗?_C - Fatal编程技术网

有人能帮我做一个C编程任务吗?

有人能帮我做一个C编程任务吗?,c,C,我需要写一个程序,它可以取任意长度的数字,将其数字按相反的顺序排列(例如,从12365到56321),并检查这两个数字是否可以从其所有数字中分开。如果两个数字都可以从每个数字中分开,那么程序应该输出两个数字:给定的数字和相反的数字。目前,我的程序只能逆转这个数字 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int i, m, n, atb = 0, nr

我需要写一个程序,它可以取任意长度的数字,将其数字按相反的顺序排列(例如,从12365到56321),并检查这两个数字是否可以从其所有数字中分开。如果两个数字都可以从每个数字中分开,那么程序应该输出两个数字:给定的数字和相反的数字。目前,我的程序只能逆转这个数字

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{

    int i, m, n, atb = 0, nr = 1, skait = 0, j;
    printf("Iveskite intervalo pradzia ir pabaiga:\n");
    scanf("%d", &m);
    scanf("%d", &n);
    //---
    for(i = m; i <= n; i++)
    {
        int temp = i;
        int dalys[skait];
        do
        {

            atb = atb*10 + temp%10;
            dalys[skait] = temp;
            temp = temp / 10;
            skait++;

        }
        while (temp != 0);
//-------------------------------------------
        for(j = 1; j <= skait; j++){
            int dal = pow(10,(skait-1));

        }



//-------------------------------------------
        printf("\n%d skaicius: %d", nr, atb);
        printf("\nSkaicius susideda is %d skaitmenu.", skait);
        atb=0;
        skait=0;
        nr++;

    }




    return 0;
}
#包括
#包括
#包括
int main()
{
int i,m,n,atb=0,nr=1,skait=0,j;
printf(“Iveskite intervalo pradzia ir pabaiga:\n”);
scanf(“%d”、&m);
scanf(“%d”和“&n”);
//---

对于(i=m;i试试这个!它应该按照您的要求运行!如果您对代码进行注释#define see steps,代码只打印所需的结果!此代码一次只计算一个数字,您可以在函数中转换它

#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>

#define SEESTEPS
#ifdef SEESTEPS
#define Dprintf(a...) printf(a);
#else
#define Dprintf(a...) ;
#endif

int main(void) {
    uint64_t x,y,z;
    uint64_t div[20];
    int cntdiv,i;

    scanf("%lu",&x);

    /* This inverts the number and computes the digit */
    z=x;y=0;cntdiv=0;
    while(z) {
        div[cntdiv]=(z%10);
        y*=10;y+=div[cntdiv];
        z/=10;cntdiv++;
    }

    Dprintf("Inverted %lu\n",y);
    /* This verifies the divisibility! */
    for(i=0;i<cntdiv;i++) {
        if (!div[i])
            continue; /* Or break; if you prefer */
        Dprintf("%lu mod %lu = %lu\n",x,div[i],x%div[i] );
        if ( (x%div[i]))
            break;
        Dprintf("%lu mod %lu = %lu\n",y,div[i],y%div[i] );
        if ( (y%div[i]))
           break;
    }

    if (i==cntdiv)
        printf("%lu %lu",x,y);

    return 0;
}
#包括
#包括
#包括
#定义SEE步骤
#ifdef请参见步骤
#定义Dprintf(a…)printf(a);
#否则
#定义Dprintf(a…);
#恩迪夫
内部主(空){
uint64_t x,y,z;
uint64_t div[20];
int cntdiv,i;
scanf(“%lu”、&x);
/*这将反转数字并计算数字*/
z=x;y=0;cntdiv=0;
while(z){
div[cntdiv]=(z%10);
y*=10;y+=div[cntdiv];
z/=10;cntdiv++;
}
Dprintf(“反向%lu\n”,y);
/*这验证了整除性*/

对于(i=0;i我也编写了此版本!我认为比以前的版本更好!此解决方案使用的向量小于另一个答复中的版本,并且不会进行无用的除法!:)此外,如果验证了请求的条件,则函数compute()返回1(其他地方为0),则您可以轻松地将最终printf移出main中的函数

#include <stdio.h>
#include <stdint.h> 
#include <stdlib.h>
#include <string.h>
#define SEESTEPS
#ifdef SEESTEPS
#define Dprintf(a...) printf(a);
#else
#define Dprintf(a...) ;
#endif

int compute(uint64_t x,int zeroGo)
{
    uint64_t y,z,t;
    int div[10];
    int cntdiv,i;

    for(i=0;i<10;i++)
        div[i]=0;

    z=x;y=0;cntdiv=0;
    while(z) {
        t=(z%10);
        if (!div[t]) {
            cntdiv++;
            div[t]=1;
        }
        y*=10;y+=t;
        z/=10;
    }

    Dprintf("%lu => Inverted %lu\n",x,y);

    if (zeroGo || !div[0]) {
        t=div[0];
        for(i=1;i<10;i++) {
            if (!div[i])
                continue;
            Dprintf("%lu mod %d = %lu\n",x,i,x%i );
            if ( (x%i) )
                break;
            Dprintf("%lu mod %d = %lu\n",y,i,y%i );
            if ( (y%i) )
                break;
            t++;
        }
    } else {
        t=cntdiv-1;
    }

    //Dprintf("%d %d -",cntdiv,t);
    if ((int)t==cntdiv) {
        printf("%lu %lu\n",x,y);
        return 1;
    }

    return 0;
}

int main(void) {
    uint64_t f,t;
    int cnt=0;

    printf("From...: ");
    scanf("%lu",&f);
    printf("To.....: ");
    scanf("%lu",&t);

    for(;f<=t;f++)
        cnt+=compute(f,1);

    printf("%d\n",cnt);

    return 0;
}
#包括
#包括
#包括
#包括
#定义SEE步骤
#ifdef请参见步骤
#定义Dprintf(a…)printf(a);
#否则
#定义Dprintf(a…);
#恩迪夫
整数计算(uint64_t x,int zeroGo)
{
uint64_t y,z,t;
国际部[10];
int cntdiv,i;

对于(i=0;如果需要,我可以将这些输出消息更改为英语。您可以将所有这些数字存储在一个数组中,然后逐个检查数组中所有元素的除法。您希望我们回答的技术问题是什么?请查看帮助部分如何提问。@Mantas Daškevičius。另请参阅上面的新版本这个评论!