C语言程序设计,编写程序

1.程序设计,输入任意一个正整数,求该数各位数之积。
2.程序设计,已知数列前两项为1,2,从第三项起,每项为前两项的和,编程输出该数列前15项(每行5项)及该数列前15项的和。
3.程序设计,将一个字符串中的前N个字符反序存入到一个字符数组中去。
以上均用C语言编写!谢谢你啦

#include<stdio.h>
int quest1(int n)
{
    if (n == 0)
        return 1;
    return n % 10 * quest1(n / 10);
}

int main()
{
    int n, i;
    scanf("%d", &n);
    printf("%d\n", quest1(n));
    return 0;
}

#include<stdio.h>
int quest2(int n)
{
    if (n == 1 || n == 2)
        return n;
    else
        return quest2(n - 1) + quest2(n - 2);
}
int main()
{
    int sum = 0, i;
    for (i = 1; i <= 15; i++)
    {
        printf("%d ", quest2(i));
        if (i % 5 == 0)
            printf("\n");
        sum += quest2(i);
    }
    printf("%d\n", sum);
    return 0;
}

#include<stdio.h>
void quest3(char*a1, char*a2, int n)
{
    int len = n;
    int ret = n;
    while (len--)
    {
        a2[ret - len - 1] = a1[len];
    }
    a2[ret] = '\0';
}
int main()
{
    int n;
    char a[30];
    char key[30];
     printf("请输入字符串\n");
    scanf("%s",key);
    printf("请输入字符串的节点:\n");
    scanf("%d", &n);
    quest3(key, a, n);
    printf("%s", a);
    return 0;
}

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

int main()
{
    //1
    printf("------第一题\n");
    int sum=0;
    int n;
    scanf("%d",&n);
    while(n)
    {
        sum+=n%10;
        n/=10;
    }
    printf("sum1 = %d\n",sum);


    printf("------第二题\n");
    int sum2=0;
    int num[15]={0};
    num[0]=1;
    num[1]=2;
    for(int i=2;i<15;i++)
    {
        num[i]=num[i-1]+num[i-2];
    }
    for(int i=0;i<15;i++)
    {
        printf("%d ",num[i]);
        sum2+=num[i];
    }
    printf("\nsum2 = %d\n",sum2);


    printf("----  第三题\n");
    char str[100];
    scanf("%s",str);
    int i=0;
    while(str[i]!='\0')
    {
        i++;
    }
    int N;
    printf("请输入要反转前几个字符:");
    scanf("%d",&N);
    for(int j=0,k=N-1;j<k;j++,k--)
    {
        char ch=str[j];
        str[j]=str[k];
        str[k]=ch;
    }
    printf("%s\n",str);
    printf("Hello world!\n");
    return 0;
}