#include<stdio.h>
#include<stdlib.h>
#define N 5//标识符常量(宏定义常量),值不可改
#include<stdlib.h>
#define N 5//标识符常量(宏定义常量),值不可改
int put(int num3,int arr[]);//输出函数
int add(int arr[]);//计算函数
void out(int num5);//输出函数
int add(int arr[]);//计算函数
void out(int num5);//输出函数
int num1=0;//全局变量,本工程文件都可使用
static int num2=0;//静态全局变量,作用域变小,本文件可使用
static int num2=0;//静态全局变量,作用域变小,本文件可使用
int main ()
{
//注:C语言中const常量保存在内存中(内存可见)。C++中保存在寄存器和内存中,运行时优先使用寄存器中值,
//若内存中值被改变,则内存值不等寄存器值出错,加关键字volatile保证内存可见性解决。
const int num3=N;//定义常量,num3值不可变,但可通过地址改变,
int arr[N]={0};//局部变量,作用域为main函数,/num3不可代替N值,即arr[num3]!=arr[N]==arr[5]
enum sex{//枚举常量
one=1,//第一个值默认值为0,
two,//第一个值+1
three//第一个值+2
}num4;//枚举变量名
{
//注:C语言中const常量保存在内存中(内存可见)。C++中保存在寄存器和内存中,运行时优先使用寄存器中值,
//若内存中值被改变,则内存值不等寄存器值出错,加关键字volatile保证内存可见性解决。
const int num3=N;//定义常量,num3值不可变,但可通过地址改变,
int arr[N]={0};//局部变量,作用域为main函数,/num3不可代替N值,即arr[num3]!=arr[N]==arr[5]
enum sex{//枚举常量
one=1,//第一个值默认值为0,
two,//第一个值+1
three//第一个值+2
}num4;//枚举变量名
while(1)
{
printf("\n*********************\n");
printf("\n输入选择(输入1,计算2,输出结果3):");
scanf("%d",&num4);
switch(num4)
{
case one://one=1
printf("\n********************\n");
put(num3,arr);
break;
case two:
printf("\n********************\n");
num1=add(arr);//arr[num3]??
break;
case three:
printf("\n********************\n");
out(num1);
break;
default:
printf("输入错误\n");
break;
}
}
{
printf("\n*********************\n");
printf("\n输入选择(输入1,计算2,输出结果3):");
scanf("%d",&num4);
switch(num4)
{
case one://one=1
printf("\n********************\n");
put(num3,arr);
break;
case two:
printf("\n********************\n");
num1=add(arr);//arr[num3]??
break;
case three:
printf("\n********************\n");
out(num1);
break;
default:
printf("输入错误\n");
break;
}
}
system("pause");
return 0;
}
return 0;
}
int put(int num3,int arr[])
{
register int i=0;//寄存器变量,(寄存器变量无地址操作)
for(i=0;i<num3;i++)
{
printf("输入第%d个数:",i);
scanf("%d",&arr[i]);
}
}
{
register int i=0;//寄存器变量,(寄存器变量无地址操作)
for(i=0;i<num3;i++)
{
printf("输入第%d个数:",i);
scanf("%d",&arr[i]);
}
}
int add(int arr[])
{
int num6=0;//每次调用add函数num6清0,
//num2静态变量,生命周期变长,出了代码块后不消毁,也不会再次初始化。下一次num2=num2(上)+arr[i]
static int num5;
{
int num6=0;//每次调用add函数num6清0,
//num2静态变量,生命周期变长,出了代码块后不消毁,也不会再次初始化。下一次num2=num2(上)+arr[i]
static int num5;
for(num2=0;num2<N;num2++)
{
num5+=arr[num2];
}
num6+=num5;//此函数结束后num6销毁,每次num6=0+num2。否则下一次num6=num6(上)+num2
printf("计算完成\n");
return num6;
}
void out (int num1)
{
printf("结果:%d",num1);
}
{
printf("结果:%d",num1);
}