C语言基础总结 ( 二 )----------数组总结( 重点排序算法 )
3,存到数组中 nums[i++] = ...
4,使用循环创建数据,并加入到数组中.循环几次? while(i < 10)
5,创建数字,判断数组中是否有该数字,如果没有就加入,如果有就重新创建
6,如何判断一个数字在数组中或不在数组中呢?
int nums[] = {1,2,3};
3在不在,4在不在?
遍历一下,看直到遍历结束,如果都没有这个数字,就表示不存在
while (i < 10) {
temp = arc4random_uniform(10);
// 循环用随机数和数组元素比较,看是否相等
for (index = 0; index < i; index++) {
if (temp == nums[index]) {
break;
}
}
// index == i说明for循环结束,随机数和数组元素不相等
if (index == i) {
nums[i++] = temp;
}
}
// 循环结束,把随机数打印出来
for (int j = 0; j < 10; j++) {
printf("%d\t%d\n", j + 1, nums[j]);
for (int i = 0; i < lengh - 1; i++) {
for (int j = 0; j < lengh - 1 - i; j++) {
if (nums[j] > nums[j + 1]) {
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
}
for (int i = 0; i < length - 1; i++) {
for (int j = i; j < length; j++) {
if (nums[j] < nums[i]) {
int temp = nums[j];
nums[j] = nums[i];
nums[i] = temp;
}
}
}
}
for(int j = 0; j < 4 - 1; j++) {
min = j; // 记录了最小取值的下标(索引)
for (int i = j + 1; i < 4; i++) {
if(nums[min] > nums[i]) {
min = i;
}
}
// 将最小的与第j项交换
if(min != j) {
temp = nums[min];
nums[min] = nums[j];
nums[j] = temp;
}
// 假定找到目标数据,就返回它的下标,如果没找到,就返回-1
int indexOf(int nums[], int length, int keydata){ // keydata 表示要找的目标数据
// 由于要执行循环的次数未知,所以用while循环来实现
int low = 0, high = length - 1,mid;
while (low <= high) {
mid = (low + high) / 2;
if (keydata == nums[mid]) {
return mid;
}else if (keydata > nums[mid]){
low = mid + 1;
}else high = mid - 1;
}
return -1;
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。