首页 > 电脑

编写一个程序,用c语言函数,但不能用指针

更新时间2022-05-13 17:20:17

编写一个程序完成“菜单”功能。提供三种选择途径:其一是求水仙花数(所谓水仙花数是指三位整数的各位上的数字的立方和等于该整数本身。例如,153就是一个水仙花数:153=13+53+33),找出100-999之间的所有水仙花数。其二是找出素数,找出2-n之间的所有素数。其三是求Faibonacci数列前n项的值。

#include<stdio.h> #include<math.h> //保存三位数的每一位 int numArr[3]; //判断是否是水仙花数 int funA(int num){ int temp=num,sum=0,count=0; while(temp!=0){ sum+=pow(temp%10,3); numArr[count]=temp%10; count++; temp/=10; } return num==sum?1:0; } //判断是否是质数 int funB(int num){ int i,count=0; for(i=1;i<=num;i++){ if(num%i==0){ count++; } } return num>1&&count<3?1:0; } //求Faibonacci数列中的任意一项 int funC(int num){ if(num==1||num==2){ return 1; }else{ return funC(num-1)+funC(num-2); } } //找100-999之间的水仙花数 void findA(){ int i; for(i=100;i<=999;i++){ if(funA(i)==1){   printf("%d=%d的立方+%d的立方+%d的立方 ",i,numArr[2],numArr[1],numArr[0]); } } } //输出2-n之间的质数 void findB(){ int i,n; printf("请输入一个大于2的整数:"); scanf("%d",&n); if(n<2){ printf("必须输入一个大于2的整数! "); findB(); }else{ printf("2到%d之间的质数有: ",n); for(i=2;i<=n;i++){ if(funB(i)==1){  printf("%d ",i); } } } printf(" "); } //求Faibonacci数列中的前N项 void findC(){ int i,n; printf("请输入一个大于等于1的整数:"); scanf("%d",&n); if(n<1){ printf("必须输入一个大于等于1的整数! "); findC(); }else{ printf("Faibonacci数列的前%d项分别是: ",n); for(i=1;i<=n;i++){  printf("%d ",funC(i)); } } printf(" "); } void showMenu(){ int choose=0; printf("1.输出100-999之间的所有水仙花数 "); printf("2.输出2-n之间的所有素数 "); printf("3.输出Faibonacci数列前n项 "); printf("======================================== "); printf("请输入你的选择(1-3):"); scanf("%d",&choose); if(choose==1){ findA(); }else if(choose==2){ findB(); }else if(choose==3){ findC(); }else{ printf("你的输入不正确,请重新输入! "); showMenu(); } } void main(){ showMenu(); }

相关标签:c语言

上一篇:电脑360桌面上有小沟什么取消

下一篇:C++中怎么自定义函数?