今天学习了第3章的内容,学习了前两章的内容,对于C语言的学习也渐渐开始有点感觉了,看到了题目也能够有自己的思路,不像一开始看到题目没有一点的思绪。
第三章呢,要求我们掌握以下几点:
1.运算符和表达式的使用;
2.自加,自减操作符的使用;
3.位运算;
今天这一章呢讲的还是一些C语言中的一些符号以及表达式概念,C语言中的运算符还是和我们常规概念中的会有一些区别,这些地方对于初学者会是一些容易犯概念错误的地方,比如对于自增和自减,有些人就会把++a和a++给弄混了,导致结果出现错误,还有就是对于c中符号认知不够清楚,例如“a=b”和“a==b”,这是两个不同的概念,“=”是赋值运算符,而“==”是用来比较两个关系对象的运算符,在编写代码时,如果不把所用的运算符搞清楚了,就会出现很多的错误。
这次的题目有两题:
1.从键盘中输入两个正整数a和b,求其最大公约数和最小公倍数。
思路:最大公约数,可以用辗转相除法求得,而输入的两个数的乘积除以两者的最大公约数就是最小公倍数。
代码如下:
#include<stdio.h>
void main()
{
int a,b,c,d,e;
printf("请输入a,b的值 ");
scanf("%d %d",&a,&b);
if(a<b)
{
c=a;
a=b;
b=c;
}
e=a*b;
d=a%b;
while(d!=0)
{
a=b;
b=d;
d=a%b;
}
printf("最小公倍数:%d\n",e/b);
printf("最大公因数:%d\n",b);
}
2.乘积大于和的数:编程求10~100之间满足各位上数的乘积大于各位上数的和的所有数,并将结果以每行5个的形式输出。
思路:可以用for循环进行枚举,把该数各位上的数分别拆开进行运算。
代码如下:
#include<stdio.h>
void main()
{
int i,j,k,n;
for(i=10;i<100;i++)
{
j=i/10;
k=i%10;
if(j*k>j+k)
{
printf("%d ",i);
n++;
if(n%5==0)
printf("\n");
}
}
}