从零开始学c语言第三天

今天就是第三天了,为了加快我们的进度,建议各位浏览“菜鸟教程”“w3cshool”“CSDN”等网站学习c语言相关基础,上面的教程详细但基础,很适合入门。

我们接下来继续解决九九乘法表的问题:


九九乘法表

这个代码打印出来的九九乘法表,会非常的整齐,美观,但是也多了很多繁琐的东西,但体现一个人的代码功底之一我想就是美观了。

我们今天继续讲算法题

第一题:

现在有1,2,3,4,四个数字,他们之间能组成多少个互不相同且无重复的三位数?都是多少?并打印出来。

看到题目第一步不是去敲代码!!!

先思考,先想思路,先想想需要用到什么语句,有什么需要注意的东西。可以拿一张纸来记下来你认为的办法,还有需要避免的雷区。

我们可以直接得到一点:需要用到for循环遍历每一个由1,2,3,4,组成的三位数,并且还需要排除重复的,相同的。

那就是:

1.需要用到for循环语句

2.需要排除重复的三位数

3.需要排除相同的三位数

那我们又出现了问题,怎么去排除呢?

很简单,用if语句,如果这个三位数满足这个条件,那么就允许他打印这个三位数出来,如果这个三位数不满足,我们就不打印。

所以我们只需要把2.3.改成需要用到if语句就行了。

那我们需要怎么去做呢?

别急,一步步来。

第一步,用for循环嵌套遍历每一个由这四个数字组成的三位数。


第一步

如果我们就这么执行的话,会发现打印的三位数中有重复的数字,那我们该怎么解决呢?

就是我们之前讲到的,用if语句:


if语句

【忽视下面的歌词】

我们用if语句就可以完美解决这个不能重复这个问题。

但我们在if语句的条件里面写了 “!=”这个东西,这是什么意思呢?

!在c语言里是非的意思,非等于也就是不等于的意思,a != b的意思就是a不等于b,这也就避免了出现重复数字的情况。

&&在c语言里是与的意思,也就是两边的条件同时满足才可以继续下去。

if语句在这里的意思就是当a不等于b且b不等于c并且a不等于c就打印这个三位数,如果大家感兴趣的话,可以自己下去打印一下尝试一下,也可以优化我的代码,尝试用更少的代码来解决这个问题。

第二道题:

用户输入三个整数,你将这三个数排序,由大到小输出出来。

我们第一步应该是什么?

先敲代码?

我们应该先分析一下雷区和用的东西。

1.用scanf获取用户输入的东西

2.需要用几个空变量来临时储存用户输入的整数

3.需要用到if语句

我们先尝试写第一版:

#include

int main ()

{

int a = 0 ;

int b = 0 ;

int c = 0 ;

int max = 0 ;

int count = 0 ;

int min = 0 ;

scanf ("%d\n%d\n%d",&a,&b,&c);

if (a >= b && a >= c)

{

max = a;

if (b >= c)

{

count = b; min = c;

}

else

{

count = c; min = b;

}

}

if(c >= a && c >= b)

{

max = c;

if (a >= b)

{

count = a; min = b;

}

else

{

count = b; min = a;

}

}

if (b >= a && b >= c)

{

max = b;

if(a >= c)

{

count = a; min = c;

}

else

{

count = c; min = a;

}

}

printf ("%d\t%d\t%d",max,count,min);

return 0 ;

}

以上就是代码,可以自己复制去dev-c++上自己敲一下看看,这不是最优算法,还有更优,欢迎大家去自己钻研。

最后,如果有什么不清楚的,不了解的,都可以在下面评论指出。

你可能感兴趣的:(从零开始学c语言第三天)