专升本c语言学习体会3
Posted 不能再挠头了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了专升本c语言学习体会3相关的知识,希望对你有一定的参考价值。
## 今天分享的一道题相对之前发的复杂一点点
前几天晚上咖啡喝多了,半夜睡着,在CSDN上面看blink的帖子,发现了一个题
题是这样的
觉得挺有意思,就在手机上做了一下。我是这么想的
- 首先说第一句话,实现对n个数进行排序。我首先想到的是scanf也不知道理解的对不对,那就定义一个变量,然后scanf。
- 然后看题的说明,要求使用函数调用的方式实现,换成c语言的意思就是,“你得给我整个函数”。好了,一个输入n,一个函数,创好了。
- 往后看,n个数保存在数组中,使用数组和个数n同时作为参数来传递,
明白了,也就是说“假如我输入这个n是3,那么保存在数组里的元素就是三个,从0~2,数组[0],数组[1],数组[2]。这里就需要做一个数组然后把数组放在循环里去让我们键盘输入,循环从0开始,结束的条件就是n-1,循环里放输入数组[循环变量]”, - 这些事情做好了,剩下的就简单了,我们就需要写函数了,函数里写一个排序,然后再用循环一个一个输出出来,上代码
#include <stdio.h>
void fun(int *a, int n) {
int i;
int j;
int t;
for (i = 1;i <= n - 1;i++) {
for (j = 0;j < n - 1;j++) {
if (a[j] > a[j + 1]) {
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
}
int main()
{
int a[20];
int x, i, j, n;
printf("输入要排序的数字数量\\n");
scanf_s("%d", &n);
printf("请输入数字,用回车分隔\\n");
for (i = 0;i <= n - 1;i++) {
scanf_s("%d", &a[i]);
}
fun(a,n);
printf("\\n");
for (j = 0;j <= n - 1;j++) {
printf("%d\\t", a[j]);
}
}
最后回到CSDN上去回复这个小伙伴
那天太晚了,写完就睡下了。
希望有同样的问题,看到我自己写的,能帮到你们。
代码的还有什么可以改进的,可以评论区回复。
以上是关于专升本c语言学习体会3的主要内容,如果未能解决你的问题,请参考以下文章