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