6-2 提取整数中能被3整除的数构成新的数后输出 (10 分)本题要求实现一个函数fun:将整型数x中每一位能被3整除的数依次取出,构成一个新数放在px所指向的变量中。高位仍在高位,低位仍在低位。例

6-2 提取整数中能被3整除的数构成新的数后输出 (10 分)

本题要求实现一个函数fun:将整型数x中每一位能被3整除的数依次取出,构成一个新数放在px所指向的变量中。高位仍在高位,低位仍在低位。例如,当x中的数为:97653140时,px中的数为:9630;如果没有满足要求的数则输出x。

函数接口定义:

 
void fun (int x, int *px);

其中 x 和 num 是用户传入的参数。函数将整数 x 中每一位能被3数依次取出,构成一个新数放在px指针所指的变量中。

裁判测试程序样例:

 
#include <stdio.h> 
void fun (int x, int *px);
int main()
{ 
     int num, t;
     scanf("%d", &num);
     fun(num, &t);
     printf("The result is: %d\n", t);
     return 0;
}

/* 请在这里填写答案 */

输入样例1:

97653140

输出样例1:

The result is: 9630

输入样例2:

7514

输出样例2:

The result is: 7514

 

void fun (int x, int *px)
{
    int r,h=x,s=0;
    while(h)
    {
        r=h%10;
        h/=10;
        if(r%3==0)
        s=s*10+r;
    }
    while(s)
    {
       r=s%10;
        s/=10;
        if(r%3==0)
        h=h*10+r;
    }
    if(h==0)
        *px=x;
    else
    *px=h;
}



#include<stdio.h>
#include<stdlib.h>
struct xinxi
{
	char num[11];
	char name[20];
	char sex[3];
	char institution[20];
	char identify;
	union 
	{
		int clas;
		char title[10];
	}shenfen;
	struct xinxi*next;
};
int main()
{
	struct xinxi*head=NULL,*p1,*p2;
	int i=0;
	while(i<5)
	{
		p1=(struct xinxi*)malloc(sizeof(struct xinxi));
		scanf("%s%s%s%s%s",p1->num,p1->name,p1->sex,p1->institution,p1->identify);
		if(p1->identify=='S')
		scanf("%d",&p1->shenfen.clas);
		else if(p1->identify=='T')
		scanf("%s",p1->shenfen.title);
		else
		break;
		if(head==NULL)
		head=p1;
		else
		p2->next=p1;
		p2=p1;
		i++;
	}
	p2->next=NULL;
	printf("now please output information:\n");
	for(i=0;i<5;i++)
	{
		printf("%s %s %s %s %s ",p1->num,p1->name,p1->sex,p1->institution,p1->identify);
			if(p1->identify=='S')
		printf("%d\n",(*p1).shenfen.clas);
	 if(p1->identify=='T')
		printf("%s\n",p1->shenfen.title);
	}
	printf("the output is over\n");
	return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果要提取整数能被3整除的数,并将它们构成的数,可以使用以下步骤: 1. 遍历原整数列表 2. 如果当前整数能被3整除,则将其加入的数列 3. 重复步骤1和2,直到遍历完所有整数 4. 输出的数列 如,如果原整数列表为 [1, 2, 3, 4, 5, 6],提取能被3整除的数后,的数列为 [3, 6]。 ### 回答2: 要提取整数能被3整除的数构成的数,首先需要确定整数的范围。假设我们有一个整数N,并且要求N能被3整除的数构成的数。 首先,我们可以将N转换为字符串,方便逐位检查。然后,我们遍历字符串的每一位数字,如果该数字能被3整除则将其加入的数。 具体步骤如下: 1. 将整数N转换为字符串,记作strN。 2. 初始化一个空字符串,用来存储能被3整除的数字。 3. 遍历字符串strN的每一位数字: - 如果当前位数字能被3整除,则将其加入到的数的字符串。 4. 如果的数的字符串为空,则说明整数N没有能被3整除的数字。 5. 否则,将的数的字符串转换为整数,并输出如,对于整数N = 123456789,按照上述步骤进行处理: 1. strN = "123456789" 2. 创建一个空字符串 3. 遍历strN: - 当前数字为1,不能被3整除,跳过。 - 当前数字为2,不能被3整除,跳过。 - 当前数字为3,能被3整除,添加到的数的字符串- 当前数字为4,不能被3整除,跳过。 - 当前数字为5,不能被3整除,跳过。 - 当前数字为6,能被3整除,添加到的数的字符串- 当前数字为7,不能被3整除,跳过。 - 当前数字为8,不能被3整除,跳过。 - 当前数字为9,能被3整除,添加到的数的字符串。 4. 的数的字符串为"369"。 5. 输出369。 因此,针对整数N = 123456789,能被3整除的数字构成的数为369。 ### 回答3: 要提取整数能被3整除的数构成的数后输出,首先我们需要明确提取整数是从哪个范围内进行选择。假设我们选择的整数范围是0到100之间的所有整数。 那么我们首先需要遍历整数范围内的每个数,判断该数是否能被3整除。如果能被3整除,我们将其添加到的数。 具体步骤如下: 1. 定义一个空的字符串变量,用于存储能被3整除的数构成数。 2. 使用循环从0遍历到100,每次遍历一个数。 3. 对于每个数,判断其能否被3整除。如果能被3整除,将其转换为字符串并添加到数的末尾。 4. 最后输出得到的数。 以下是用Python编写的代码实现: ```python new_number = "" for i in range(101): if i % 3 == 0: new_number += str(i) print(new_number) ``` 这段代码会输出符合条件的整数构成数,即"036912151821242730333639424548515457606366697278818487909399"。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值