遗漏知识点
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>=‘a’&&a<=‘z’)
x++;
if(a>=‘0’&&a<=‘9’)
y++;
if(a>=‘A’&&a<=‘Z’)
z++;
f++; //如果增加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!=0)
printf("%d “,a=2);
for(a=2,x=1;x<=n;x++)
{
a=a+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=(a>b)?a:b;//C使用三目运算符简便计算
for(w=1,q=2;q<max;q++)
{
if(max%q==0)
{
printf("最小公倍数为%d",q);
w=0;break;
}
}
if(w==1)
{
printf("未找到最小公倍数");
}
//先计算最小公倍数可使计算最大公约数时,max的量虽然改变但不影响计算的目的
for(w=1;max>1;max--)
{
if(a%max==0&&b%max==0)
{
printf("最大公约数为%d",max);
w=0;break;
}
}
if(w==1)
{
printf("未找到最大公约数\n");
}
}
计算阶乘之和问题*************************************************
/* Note:Your choice is C IDE 计算阶乘之和问题 /
#include “stdio.h”
void main()//循环的嵌套
{
int x,y,h,sum=0;
for(y=1;y<=20;y++)
{
h=1;//重新定义变量
for(x=1;x<=y;x++)
{
h=xh;
}
sum=sum+h;
}
printf("%d",sum);
} /注意调用变量前定义需用变量的初始值,否则可能导致变量错误赋值