第一个事情:数组作为函数参数
1.数组元素作为函数参数
2.数组名作为函数参数
3.二维数组作为函数参数,实际上传递的是地址
输入一组数组
输出一组数组
累加一组数组的和
求出数组的最大值和最小值
求出数组的平均值
1.统计最大值并统计他的索引
#include
// 函数声明
int max(int x, int y);
int main() {
int a[10]; // 用于存储10个整数的数组
int i, m, n;
printf("请输入10个整数:\n");
for(i = 0; i < 10; i++) {
scanf("%d", &a[i]); // 输入10个数给a[0]~a[9]
}
m = a[0]; // 初始化最大值为数组的第一个元素
n = 0; // 初始化最大值的索引为0
for(i = 1; i < 10; i++) {
if(max(m, a[i]) > m) { // 若max函数返回的值大于m
m = max(m, a[i]); // 更新最大值
n = i; // 更新最大值的索引
}
}
printf("最大的数是:%d\n", m);
printf("它是第%d个数。\n", n + 1);
return 0;
}
// max函数返回两个整数中的较大值
int max(int x, int y) {
return (x > y) ? x : y;
}
2.求出数组中的平均值带内部参数
#include
float average(float array[10]); // 函数声明
int main() {
float score[10], aver;
int i;
printf("输入10个分数:\n");
for(i = 0; i < 10; i++) {
scanf("%f", &score[i]);
}
printf("\n");
aver = average(score); // 调用average函数
printf("平均分数是 %5.2f\n", aver);
return 0;
}
float average(float array[10]) { // 定义average函数
int i;
float aver, sum = array[0];
for(i = 1; i < 10; i++) {
sum = sum + array[i]; // 累加学生成绩
}
aver = sum / 10; // 计算平均值
return aver;
}
3.通过选择法来排序
zhuyi:
选择一个个元素并逐步排列
#include
void sort(int array[], int n) {
int i, j, temp;
for (i = 0; i < n-1; i++) {
for (j = i+1; j < n; j++) {
if (array[i] > array[j]) {
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
int main() {
int a[10];
printf("Enter array elements (10 elements):\n");
for(int i=0; i<10; i++) {
scanf("%d", &a[i]);
}
sort(a, 10); // 调用sort函数,a为数组名
printf("The sorted array:\n");
for(int i=0; i<10; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
Zhuyi:这边赋值的是数组
4.看来排序也做完了,接下来不知道要将什么:其实是冒泡排序
zhuyi:冒泡排序比较的就是临街元素的大小并且逐步缩小范围
气泡排序(Bubble Sort)是一种简单的排序算法。它的工作原理是:通过不断地遍历待排序的数列,比较相邻的两个元素,如果它们的顺序错误就交换它们,直到没有需要交换的元素为止。
以下是使用 C 语言实现气泡排序的示例代码:
c
#include
void bubbleSort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr)/sizeof(arr[0]);
bubbleSort(arr, n);
printf("Sorted array: \n");
for (int i=0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
在这个示例中,bubbleSort 函数接收一个整数数组和数组的大小作为参数,然后使用嵌套的 for 循环来遍历和排序数组。如果当前元素大于下一个元素,它们就交换位置。这个过程一直持续到整个数组被排序。在 main 函数中,我们定义了一个待排序的数组,并调用 bubbleSort 函数来对其进行排序。最后,我们打印出排序后的数组。
5,二维数组
#include
void fun(int a[][3], int b[], int n) {
for (int i = 0; i < n; i++) {
b[i] = 0;
for (int j = 0; j < 3; j++) {
b[i] += a[i][j];
}
}
}
int main() {
int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int b[3];
fun(a, b, 3);
for (int i = 0; i < 3; i++) {
printf("%d ", b[i]);
}
return 0;
}
cccc程序设计统计
1.统计类型题目
2。公示类型题目
3、考察基础知识点类型
1、
avaGirl开始学习C语言程序设计了,当她学到数据表示的时候知道了两个数相加有时候是会溢出的,这让她明白了东方不败有时候会爱上令狐冲没有什么好稀奇的。
javaGirl总是会胡思乱想,虽然知道了有溢出这回事,但是她还想准确地知道两个64位无符号整数相加的时候是否会溢出。
首先一个整数t(t <= 500)代表数据组数。
每组测试数据包含两个64位无符号整数a和b。
如果两数相加溢出了,输出1。
否则输出0.
5
1 18446744073709551615
3 18446744073709551615
222 22222
0 18446744073709551615
565328238827302101 92165582197
1
1
0
0
0
#include
int main() {
int t;
scanf("%d", &t);
while (t--) {
unsigned long long a, b;
scanf("%llu %llu", &a, &b);
if (a + b < a || a + b < b) {
printf("1\n");
} else {
printf("0\n");
}
}
return 0;
}
2023年12月23日08:24:08段错误的C++有什么办法呢
简单的描述C语言中格式符%g的用法
%g是一个很好用的格式符,在很多时候可以方便我们。
在输出的时候我们使用%g会有什么样的奇特用法呢,比如我们想要输出一个12.3,但是如果你选择使用%f作为格式符,就会输出12.300000。但是很多时候我们只想要打印出12.3,这个时候可以选择%g进行格式化,输出结果就会变成12.3。它将后面无用的0全部舍去了,可以在很多时候满足题目的要求。
举个例子
12.3+12.7如果使用%f输出,你将会得到25.000000,而有的时候你并不想要小数点末尾这么多的0,你可能会选择强制转换成int类型,但是这样子会显得有点繁琐,这个时候%g的妙用就体现出来了,使用%g格式符输出之后,直接得到25了,它会自动将小数点后面没用的0过滤掉,这个设置就显得十分人性化了。而且小数点后面的有效数字也不会省略掉,这个格式符简直好用到爆!
再看看维基百科是怎么解释这个格式符的
'g’使用小写字母,'G’使用大写字母。小数点右侧的尾数0不被显示;显示小数点仅当输出的小数部分不为0。
真的是言简意赅。
#include
int main(){
printf("%f",12.3);
printf("%g",12.3);
printf("%f",12.3+12.7);
printf("%d",int(12.3+12.7))
printf("%g",12.3+12.7);
return 0;
}
1
2
3
4
5
6
7
8
9
运行结果:
————————————————
版权声明:本文为CSDN博主「桃花er」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45930241/article/details/108587822
函数声明是放在主程序前面的,要求是定义的函数在主函数后面