#include <stdio.h>
int sign(int x)
{
	
	if(x>0)
	return 1;
	else if(x==0)
	return 0;
	else
	return -1;
	}

int even(int n)
{
	int x;
	if(n%2==0)
		x=1;
	else
		x=0;
	return x;
	}

int prime(int m)
{
	int i;
	for(i=2;i<=m;i++){
		if(m%i==0)
			return 0;
		else
			return 1;
		}
	}

int countdigit(int number,int digit)
{
	int count,i;
	count=0;
	i=0;
	while(number%10!=0){
		i=number%10;
		number=number/10;
		if(i==digit)
			count++;
		}
		return count;
	}

int is(int number){
	int a,b,c;
	a=number/100;
	b=number/10-a*10;
	c=number%10;
	if(number==a*a*a+b*b*b+c*c*c)
		return 1;
	else
		return 0;
}
int main()
{
 	int choice=1;
 	int n,y,sum=0,x;
 	int m,i,count;
 	int number,digit;
 	do{
	 	printf("****实验六:函数****\n");
		printf("****1.计算并输出分段函数f(x)的值****\n");
		printf("****2.使用函数求奇数和****\n");
		printf("****3.计算素数个数并求和****\n");
		printf("****4.统计制定数字的个数****\n");
		printf("****5.输出m~n之间所有的水仙花数****\n");
		printf("****0.退出****\n"); 
		printf("请选择题号:");
		scanf("%d",&choice);
		
		switch(choice){
			case 1:
				printf("请输入x:");
				scanf("%d",&x);
				printf("f(%d)=%d\n",x,sign(x));
			break;
			case 2:
					do{
						scanf("%d",&n);
						if(n>0){
							y=even(n);
							if(y==0){
								sum=sum+n;
							}
						}	
					}while(n>0);
					printf("sum=%d\n",sum);
			break;
			case 3:
				printf("输入两个整数m(m>1)和n(n<500):");
				scanf("%d%d",&m,&n);
				sum=0;
				count=0;
				for(i=1;i<=n;i++){
					if(prime(i)==0){
						count++;
						sum+=prime(i);
						
					}
				}
				printf("一共有%d个素数,sum=%d\n",count,sum);
			break;
			case 4:
				digit=2;
				printf("输入一个整数:");
				scanf("%d",&number);
				printf("%d中有%d个2\n",number,countdigit(number,digit=2));
			break;
			case 5:
				int number,m,n,i;
				printf("输入两个个整数m(m=>1)和n(n<=1000):");
				scanf("%d%d",&m,&n);
				for(i=m;i<=n;i++){
					if(is(i)){
					printf("%5d\n",i);
						}
					}
			break;
			case 0:break;
		}
		} while(choice!=0);
		 return 0;
	}

 

一、知识点总结:

1.长度运算符:sizeof

2.单目运算符:计算变量或数据类型的字节长度

                    Int a;

                    Sizeof(a)

                    求整形变量a的长度,值为4(bytes)

                    Sizeof(int)

                    求整形的长度,值为4(bytes)

3.逗号表达式:

表达式1,表达式2,表达式3,.... 表达式N

 

4.++运算符:

自增,自减运算符使变量的值增1或减1。

有四种形式:i++  ++i   i--   --i

 

5.算数表达式: 单目:+, -, ++, --

                     双目:+,-,*,/,%

6.赋值表达式: 简单赋值:=

                     复合赋值:+=,-=,*=,,/=%=,!=

7.关系表达式:>,>=,<,<=,!=

   逻辑表达式:!,&&,||

   条件表达式:?

   逗号表达式:,

   其他运算:sizeof

8.数组:数组必须先定义然后使用。C语言规定只能逐个引用,而不能一次引用整个数组。

对数组元素的初始化可以用以下方式实现:

①在定义数组时,对数组元素赋以初值。如:int a[10]={0,1,2,3,4,5,6,7,8,9};

②可以给一部分元素赋值。如:int a[10]={0,1,2,3,4},表示只给前五个元素赋初值,后五个元素自动赋予0值。

③对static数组不赋初值,系统会对所有元素自动赋予0值。即:如果想要使数组a中全部元素值为0,可以这样定义数组:static int a[5];