C语言的有关问题,各位指点一下!

C语言的问题,各位指点一下!!
对于递归问题我一直都不是很懂~看书也不是很明白,老师也只是说过一遍就算了~~C语言真是难学啊`,帮我看以下的题目怎么搞啊~~
问题1
1.编写一行字符,分别计算出其中大写字母,小写字母,空格和其他字符的个数,还有就是要用while语句~`


问题2
假如我想输入1.2.3.4.5这几个数目,再吧他们逆转过来,就是5.4.3.2.1   ,把他们的相加,得出最后结果~~~

代码是怎么写的啊?谢谢了~~

------解决方案--------------------
2:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int i, a[5], sum=0;
for(i=0; i <5; i++)
{
printf( "No.%d number= ", i+1);
scanf( "%d ", &a[i]);
sum+=a[i];
}
printf( "\nInverse: ");
for(i=4; i> =0; i--) printf( "%d ", a[i]);
printf( "\nThe sum is %d\n ", sum);

system( "PAUSE ");
return 0;
}
------解决方案--------------------
1:

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int i=0, space=0, upcase=0, lowcase=0, other=0;
char tmp[40]={0};
puts( "Please input a string: ");
gets(tmp);
while(tmp[i] != '\0 ')
{
if(isalpha(tmp[i]))
{
if(tmp[i] > = 'a ')lowcase++;
else upcase++;
}
else if(tmp[i] == ' ')space++;
else other++;
i++;
}
printf( "\nIn the inputed string: \ "%s\ ", ", tmp);
printf( "\nSpace_count = %d, ", space);
printf( "\nUpcase_count = %d, ", upcase);
printf( "\nLowcase_count = %d, ", lowcase);
printf( "\nOther_count = %d, ", other);

system( "PAUSE ");
return 0;
}