一些基础的题

这篇博客包含四个编程问题的解决方案:1) 判断三位数是否为水仙花数;2) 判断一个数是否为素数;3) 计算阶乘;4) 使用递归方法求解特定数列的第6项。每个问题都有详细的函数实现和main函数调用示例,便于理解与实践。

1.编写函数 fun(n),n 是一个三位整数,判断其是否水仙花数,是返回 1,否返回 0.编写 main 函数,输入一个数 num,调用 fun(num)函数,输出判断结果。

#include<stdio.h>
int fun (int n);
void main()
{
       int num,i;
       printf("请输入一个三位数的整数:\n");
       scanf("%d",&num);
       while(num/100<1  || num/100>9)
       {
              printf("输入数据错误,请重新输入:\n");
              scanf("%d",&num);
       }
       i=fun(num);
       if(i==1)
              printf("该三位数是水仙花数。\n");
       else
              printf("该三位数不是水仙花数。\n");

}
int fun(int n)
{
       int a,b,c,d;
       a=n/100;
       c=n%10;
       b=(n-100*a)/10;
       d=a*a*a+b*b*b+c*c*c;
       if(n==d)
              return 1;
       else
              return 0;
}

2.编写函数 ss(n), 判断 n 是否为素数,是返回 1,否返回 0。编写 main函数,输入一个数 num,调用ss(num)函数,并输出判断结果。

#include<stdio.h>
int ss (int n);
void main()
{
       int num,i;
       printf("请输入一个整数:\n");
       scanf("%d",&num);
       if(num==1)
              printf("1不是素数\n");
       else
       {
              i=ss(num);
       if(i==1)
              printf("该数是素数。\n");
       else
              printf("该数不是素数。\n");
       }
}
int ss(int n)
{
       int a,b=0;
          for(a=1;a<n;a++)
          {
              if(n%a==0)
                     b++;
          }
       if(b==1)
              return 1;
       else
              return 0;
}

3.编写一个函数 fun(n),计算 n!,并编写 main 函数测试,在main 函数中输入 num,调用 fun(num),输出计算的结果。

#include<stdio.h>
int fun (int n);
void main()
{
       int num,i;
       printf("请输入一个整数:\n");
       scanf("%d",&num);
       i=fun(num);
       printf("整数%d的阶乘为:",num);
       printf("%d\n",i);
}
int fun(int n)
{
       int a,b=1;
       for(a=1;a<=n;a++)
              b=b*a;
       return b;
}

某数列为 K(n)的定义为


用递归的方法求该数列的第 6 项k(6)。

#include<stdio.h>
void main()
{
       int num,a,b=1;
       printf("请输入项数:\n");
       scanf("%d",&num);   
for(a=0;a<=num;a++)
       {
              if(num==1)
                    b=1;
              if(num%2==0)
                     b=b*2;
           if(num%2!=0)
                     b=b*3;
       }
       printf("第%d项的数值为:K(%d)=",num,num);
       printf("%d\n",b);
}

5.在一个一维数组 a 中存放 10 个正整数, 求其中所有的素数。(用数组元素作为函数的实际参数)

#include<stdio.h>
void main()
{
       int a[10],i,b,c=0;
       printf("请输入十个正整数:\n");
for(i=0;i<10;i++)
       {
              scanf("%d",&a[i]);
       }
       printf("其中素数有:");
       for(i=0;i<10;i++)
       {
              if(a[i]!=1)
              {
              for(b=1;b<a[i];b++)
              {
                     if(a[i]%b==0)
                           c++;
              }
              if(c=1)
                     printf("%d",a[i]);
              }
       }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值