数组作为函数传递参数
第一个事情:数组作为函数参数
1.数组元素作为函数参数
2.数组名作为函数参数
3.二维数组作为函数参数,实际上传递的是地址
c语言实际的基本操作:
输入一组数组
输出一组数组
累加一组数组的和
求出数组的最大值和最小值
求出数组的平均值
c语言课堂上的具体例题
1.统计最大值并统计他的索引
#include <stdio.h> // 函数声明
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 <stdio.h> 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 <stdio.h> 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 <stdio.h> 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 <stdio.h> 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、考察基础知识点类型
cccc例题表示
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 <stdio.h> 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 <stdio.h>
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
函数声明是放在主程序前面的,要求是定义的函数在主函数后面