代码如下:
思路如下:定义一个函数,形参 是data,每次都使data/=10,定义一个length,使其自增,直到data==0为止,计算出data的位数,用length作为返回值。
#define _CRT_SECURE_NO_WARNINGS //关闭安全监察
#include<stdio.h>
#include<stdlib.h>
//12345 1234 123 12 1 0
int wei(int data )
{
int length=0; //计数器
for(;data;data/=10)//为0终止循环 data/=10
{
length++;
}
return length;
}
void main()
{
int num;
scanf("%d",&num);
printf("%d",wei(num));
}
设计一个函数,检测一个数是否为质数
定义一个函数,用于判断是否为质数,如果为质数,返回1,否则返回0
#include<stdio.h>
#include<stdlib.h>
int zhi(int data) //是质数返回1,否则返回0
{
if(data<=1) //1,-2,0,
{
return 0;
}
else if(data==2||data==3)//是质数
{
return 1;
}
else
{
//只能被1还有自身整除的数才是质数
int flag=1;//假定是
for(int i=2;i<data;i++)
{
if(data%i==0)//判断一下是否可以被整除
{
flag = 0;//一旦被整除就不是质数,跳出循环
break;
}
}
return flag;
}
}
int main()
{
int num;
scanf("%d",&num);
int flag=zhi(num);
if(flag==1)
{
printf("质数");
}
else
{
printf("不是质数");
}
system("pause");
}
实现1+2+3+4+5+6+···100的递归函数
定义一个递归函数go,用来实现连续的整数相加
#include<stdio.h>
#include<stdlib.h>
int go(int n)
{
if(n==1)
{
return 1;
}
else
{
return go(n-1)+n;//递归运算
}
}
int main()
{
printf("%d",go(100));
system("pause");
}