//parta.c 不同的存储类别
//与partb.c一起编译
#include <stdio.h>
void report_count();
void accumulate(int k);
int count = 0;
int main(void)
{
int value;
register int i;
printf("Enter a positive integer (0 to quit):");
while (scanf("%d",&value)== 1 && value>0)
{
++count;
for (i = value; i >= 0; i--)
accumulate(i);
printf("Enter a positive integer (0 to quit):");
}
report_count();
return 0;
}
void report_count()
{
printf("Loop execute %d times\n", count);
}
//partb.c--程序的其余部分
// 与parta.c 一起编译
#include <stdio.h>
extern int count;
static int total = 0;
void accumulate(int k);
void accumulate(int k)
{
static int subtotal = 0;
if (k <= 0)
{
printf("loop cycle: %d\n",count);
printf("subtoal : %d ; total: %d\n", subtotal, total);
subtotal = 0;
}
else
{
subtotal += k;
total += k;
}
}