c语言程序设计题(一)

1、编写程序求孪生素数。如果n和n+2都是素数,则称它们是孪生素数。输入一个正整数m,输出两个均不超过m的最大孪生素数,并输出。比如输入m值为20,输出孪生素数17,19。

c语言程序代码:

#include <stdio.h>

// 函数原型
int is_prime(int num);

int main() {
    int m;
    
    // 输入正整数 m
    printf("请输入一个正整数 m:");
    scanf("%d", &m);

    // 寻找不超过 m 的最大孪生素数
    for (int i = m; i >= 2; i--) {
        if (is_prime(i) && is_prime(i - 2)) {
            printf("最大的孪生素数是:%d 和 %d\n", i - 2, i);
            break;
        }
    }

    return 0;
}

// 判断一个数是否为素数的函数
int is_prime(int num) {
    if (num <= 1) {
        return 0;
    }

    for (int i = 2; i * i <= num; i++) {
        if (num % i == 0) {
            return 0;
        }
    }

    return 1;
}

运行结果:

2、编写一个子函数  int string_sub(char *s1,char *s2),用以判断字符串s1中是否含有子字符串s2,如果存在,则返回1;否则返回0

要求用指针实现,主函数输入一个字符串string和一个子字符串substr,调用子函数int string_sub(char *s1,char *s2),输出字符串中是否存在子字符串。

比如输入的字符串为:C program,输入的子字符串为gra,则输出“存在字符串”。

比如输入的字符串为:C program,输入的子字符串为prg,则输出“不存在字符串”。

代码:

#include <stdio.h>

// 函数原型
int string_sub(char *s1, char *s2);

int main() {
    char string[100], substr[100];

    // 输入字符串和子字符串
    printf("请输入一个字符串:");
    gets(string); // 请注意,gets 函数不太安全,实际应用中应该使用更安全的替代方案
    printf("请输入一个子字符串:");
    gets(substr);

    // 调用子函数判断是否存在子字符串
    if (string_sub(string, substr)) {
        printf("存在字符串\n");
    } else {
        printf("不存在字符串\n");
    }

    return 0;
}

// 判断字符串s1中是否含有子字符串s2
int string_sub(char *s1, char *s2) {
    while (*s1 != '\0') {
        char *temp_s1 = s1;
        char *temp_s2 = s2;

        // 检查子字符串是否匹配
        while (*temp_s1 == *temp_s2 && *temp_s2 != '\0') {
            temp_s1++;
            temp_s2++;
        }

        // 如果子字符串匹配成功,返回1
        if (*temp_s2 == '\0') {
            return 1;
        }

        s1++;
    }

    // 如果遍历完毕都没有匹配成功,返回0
    return 0;
}

 仿真结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值