C语言编程练习之数组.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
【C语言编程练习】 在C语言编程中,数组是一种重要的数据结构,用于存储一组相同类型的数据。本篇编程练习涉及到的三个知识点都是基于数组的应用。 1. 输出整数各位数字: 这个问题需要从高位到低位逐个输出整数的每一位。实现方法是通过不断地取模和除法操作,将整数的个位数分离出来。具体步骤如下: - 使用 `%` 操作符获取整数的个位数(number%10)。 - 用整数除以10(number=number/10)去掉个位数。 - 重复以上步骤,直到整数变为0,将每一步得到的个位数存入数组中。最后逆序输出数组即可。 示例代码展示了如何实现这个功能,使用了while循环和动态填充数组: ```c #include <stdio.h> int main(){ long long n; scanf("%lld",&n); int a[20]={0},cnt=0; while (n!=0){ a[cnt++]=n%10; n=n/10; } // 逆序输出数组a for (int i=cnt-1;i>=0;i--) printf("%d ",a[i]); return 0; } ``` 2. 冒泡排序: 冒泡排序是一种简单的排序算法,通过重复遍历数组,比较相邻元素并交换位置,使得较大的元素逐渐“冒”到数组末尾。对于K趟冒泡排序,我们需要进行K次完整的遍历,每次遍历都将当前未排序部分的最大元素“冒”到正确位置。 示例代码实现了这个过程,用两个嵌套的for循环来执行K趟冒泡排序,并在每趟结束后输出中间结果: ```c #include <stdio.h> int main(){ int a[100]; int n, k; scanf("%d%d",&n,&k); for (int i=0;i<n;i++) scanf("%d",&a[i]); for (int i=0;i<k;i++){ for (int j=0;j<n-1-i;j++){ if (a[j]>a[j+1]){ int t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } // 输出排序后的数组 for (int i=0;i<n;i++) printf("%d ",a[i]); return 0; } ``` 3. 评委打分: 这个问题涉及动态更新数组元素的值。数组a[11]用于存储10位选手的初始分数,每次选手答对题目,对应位置的分数增加10分。 示例代码展示了如何根据输入更新数组并输出最终得分: ```c #include <stdio.h> int main(){ int a[11]; for (int i=1;i<=10;i++) scanf("%d",&a[i]); int n, k; scanf("%d",&n); for (int i=1;i<=n;i++){ int x; scanf("%d",&x); a[x]+=10; } // 输出每位选手的最终得分 for (int i=1;i<=10;i++) printf("%d ",a[i]); return 0; } ``` 这三个练习体现了C语言中数组的基本应用,包括数组元素的读取、修改以及遍历操作。这些基本技能在处理各种复杂问题时都是不可或缺的。通过这样的练习,可以提高对数组操作的熟练度,为更高级的编程任务奠定基础。
剩余20页未读,继续阅读
- 粉丝: 6755
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助