用函数实现判断整数是否能被n整除 --C语言实现

1.试题详情

输入一组整数,输入0结束(这组整数不包含0),输出其中能被n整除的所有整数之和(n为整数,不用考虑n为0的情况),n及这组整数均由键盘输入。首先输入n,再输入一组整数。要求:用函数实现判断一个整数是否能被n整除(不用考虑n为0的情况)。

1.1 输入提示

输入两行,第一行输入n,第二行输入一组整数,以空格隔开,输入数字0结束。

1.2 输出提示

输出其中能被n整除的所有整数之和。

1.3 输入与输出样本

输入:

3

2 3 6 -7 -9 12 0

输出:

12

2.程序运行思路

使用单链表存储输入的若干整数,然后遍历单链表判断每个整数是否能被n整除,并对可以被n整除的数加和。

3.代码实现及运行结果

3.1 代码实现

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

typedef struct node
{
    int num;
    struct node* next;
}array;

array* createnode() {
    array* p = (array*)malloc(sizeof(array));
    p->num = 0;
    p->next = NULL;
    return p;
}

array* addnode(array* arr, int num) {
    array *p1, *p2;
    p1 = arr;
    p2 = arr->next;

    while(p2 != NULL) {
        p1 = p2;
        p2 = p2->next;
    }

    array *p = (array *)malloc(sizeof(array));
    p->num = num;
    p->next = NULL;

    p1->next = p;

    return arr;

}

int add(array* arr, int n) {
    int value = 0;
    for(array* p = arr; p != NULL; p=p->next) {
        if(p->num % n == 0)
            value += p->num;
    }
    return value;
}
int main() {
    int n, num, value = 0;
    array* arr = createnode();
    scanf("%d",&n);

    while(1) {
        scanf("%d",&num);
        if(num == 0)
            break;
        else
            arr = addnode(arr, num);
    }

    value = add(arr, n);
    printf("%d",value);

    return 0;
}

3.2 运行结果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值