# 遗漏知识点
1.有关i++问题:
[ int i=1,x; ]
x=i++;输出x=1;i=2;
x=++i;输出x=2;i=2;
x=i--;输出x=1;i=0;
x=--i;输出x=0;i=0;
结果:1331;
2.加减运算方面
a+=1 ==> a=a+2
# 练习
# 输入不同字符计算种类个数******************************************
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int x=0,f=0,y=0,z=0;
char a;
while(a!='n')
{
a=getchar();
if(a>&#61;&#39;a&#39;&&a<&#61;&#39;z&#39;)
x&#43;&#43;;
if(a>&#61;&#39;0&#39;&&a<&#61;&#39;9&#39;)
y&#43;&#43;;
if(a>&#61;&#39;A&#39;&&a<&#61;&#39;Z&#39;)
z&#43;&#43;;
f&#43;&#43;; //如果增加else则丢掉循环大写字母计数,应单独考虑.
}
printf("%d %d %d %d ",x,y,z,f-1-x-y-z);
}
# 不同位数相乘问题 n由键盘输入*
*************************************
/* Note:Your choice is C IDE 不同位数相乘问题 n由键盘输入*/
#include "stdio.h"
#include"math.h"//调用数学函数来计算x^y问题
void main()
{
int a,n,x;
scanf("%d",&n);
if(n!&#61;0)
printf("%d ",a&#61;2);
for(a&#61;2,x&#61;1;x<&#61;n;x&#43;&#43;)
{
a&#61;a&#43;2*pow(10,x); //因为输入的为整数,所以不会丢失精度.
//pow(x,y)可以计算x^y问题 原型:double pow(double x,double y);
printf("%d ",a);
}
}
# 求解最大公约数最小公倍数问题 ******************************************************************
/* Note:Your choice is C IDE 求解最大公约数最小公倍数问题 */
#include "stdio.h"
void main()
{
int max,a,b,q,w;
scanf("%d%d",&a,&b);
max&#61;(a>b)?a:b;//C使用三目运算符简便计算
for(w&#61;1,q&#61;2;q {
if(max%q&#61;&#61;0)
{
printf("最小公倍数为%d",q);
w&#61;0;break;
}
}
if(w&#61;&#61;1)
{
printf("未找到最小公倍数");
}
//先计算最小公倍数可使计算最大公约数时,max的量虽然改变但不影响计算的目的
for(w&#61;1;max>1;max--)
{
if(a%max&#61;&#61;0&&b%max&#61;&#61;0)
{
printf("最大公约数为%d",max);
w&#61;0;break;
}
}
if(w&#61;&#61;1)
{
printf("未找到最大公约数n");
}
}
# 计算阶乘之和问题*************************************************
/* Note:Your choice is C IDE 计算阶乘之和问题 */
#include "stdio.h"
void main()//循环的嵌套
{
int x,y,h,sum&#61;0;
for(y&#61;1;y<&#61;20;y&#43;&#43;)
{
h&#61;1;//重新定义变量
for(x&#61;1;x<&#61;y;x&#43;&#43;)
{
h&#61;x*h;
}
sum&#61;sum&#43;h;
}
printf("%d",sum);
} /注意调用变量前定义需用变量的初始值,否则可能导致变量错误赋值