大叫好,二八承平再次上线,在这里分享一个今天学习的新知识。
问题的出发是输出1-100之间有多少个九,我花费一个多小时自己琢磨,网上查找资料终于解决这个问题。
收获到了知识的甜味!我冒出一个问题?我该怎么输出1-100中含9的数字呢?大家也可以想一想。
欲望激励的我,我经过漫长的反复敲打,终于有了结果。
新的问题出现,我的输出结果没有一定的顺序(当然,我认为90%是我还没有学好C语言的缘故,输出的结果不对),既不是升序也不是降序。啊!令我头大的新问题再次出现?
我该用什么办法解决这个难题,幸运的是我刚好在昨天学习冒泡排序。哇!我看见胜利的曙光!
BUT,我昨天上课学的冒泡排序我还不会!天哪!这可怎么办?
不!不!不!这不足以抵挡我对知识的渴望,我想自己敲代码,反复修改,结果还是不正确?
我会放弃?不!我在网站上搜索关于冒泡排序的知识点,跟着讲解者一步一步的完善我的程序。
我很幸运,我的代码完成了。
我自己还是很明白的!我并没有掌握它,我只是比昨天更懂了他一点,但这足够让我高兴。
到这,我的C语言分享快要结束了,希望大家可以慢慢看到C语言的吸引处,为他着迷。
哦,对了,大家有不会的知识点或者是其他问题,请一定要在网上寻找相关的视频讲解或借鉴他人的代码会受益很多,千万不要自己憋着哦!!!
下面分享一下我的代码:
虽然我很想做的优美一点,可是不知道为什么有点怪怪的。
结构:显示源码,源码的截图,运行的结果。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
//1-100一百之间有多少个九(20个九,***99有两个九)
int i = 0;
int j = 0;
int count = 0;
for (i = 0; i <= 100; i++)
{
if(i%10==9)
{
count++;
}
if (i / 10 == 9) //用else会出错,就变成二选一,会忽略不计99中的一个久,***所以用if语句
{
count++;
}
}
printf("%d\n", count);
//这一步是输出带有9的数字(1-100),虽然有点麻烦,但我现在只会这个
int a = 0;
int b = 0;
for (a = 0; a <= 9; a++)
{
b = 10 * a + 9;
if (b <100)
{
printf("%d ", b);
}
b = 10 * 9 + a;
if (b <99)
{
printf("%d ",b);
}
}
//利用冒泡排序对1-100中带九的数字进行升序
int arr[19];
for (a = 0; a < 19; a++)//根据元素个数的多少利用循环对数组元素进行赋值(通过键盘输入,注意‘&’)
{
scanf("%d", &arr[a]);
}
for (i = 0; i < 18; i++)//多少趟--比数组元素少一
{
for (a = 0; a < 18-i; a++)//一趟要有多少对数组元素比较--比每一趟少一
{
if (arr[a] > arr[a + 1])
{
int t = arr[a + 1];
arr[a + 1] = arr[a];
arr[a] =t;
}
}
}
for (a = 0; a < 19; a++)//输出升序的数组元素(多少个元素,循环条件里是多少)
{
printf("%d ", arr[a]);
}
return 0;
}
以为结束了!哈哈哈!当然不,如果大家有输出1-100之间的含9的数字请@二八承平或是给个评论,指点迷津,对我代码的完善也可以。
谢谢大家。