当前位置:首页 » 编程语言 » c语言从大到小输出for

c语言从大到小输出for

发布时间: 2024-09-28 03:26:34

c语言排序,从大到小 for(i=0;i<N-1;i++)和for(j=i;j<N;j++)不懂,尤其是为什么j=i

这是选择排序。
就是说,先选出最大的一个,放在数组的第一位(array[0]);然后再选次大的,放在第二位(array[1]),依此类推……
循环中的i 表示已经排好序的元素个数,j从i 循环到n,找出最大的一个(其实是整个数组里第i大的,因为前面已经有i个数排好序了),和array[i]交换
然后i++,相当于这个数值已经被放到合适的位置上,以后不考虑它了,接着排后面的。
i前面的元素都已经排好序了,还管它们干嘛,所以for(j=i;j<n;j++),是让j从i 循环到n,接着找最大的
至于你说的,当j==i时比较array[i]和array[j]没什么用,确实是,但是电脑是不计较这点浪费的,所以如果这样能让你写起来更顺手,大家一般是不会在意多浪费几次的。反正浪费的次数加起来也费不了1ms
如果你不喜欢这样写,你也可以写for(j=i+1;j<n;j++),没有任何问题。

Ⅱ c语言编写,计算一矩阵的特征值,按从大到小排序输出。

#include<stdio.h>
int main()
{
int a[3][5],i,j,k,temp;

//通过读取给3×5的数组赋值
for(i=0;i<3;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);

//一行一行的判断
for(k=0;k<3;k++)
{
//标准冒泡法
for (j = 0; j < 9; j++)
{
for (i = 0; i < 9 - j; i++)
{
if (a[k][i] < a[k][i + 1])
{
temp = a[k][i];
a[k][i] = a[k][i + 1];
a[k][i + 1] = temp;
}
}
}
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
}

Ⅲ c语言 输入十个整数,从大到小排序,并输出来。求解题思路

1、数组形式。

解题思路: 判断比较的躺数,每趟相邻的两个数再进行比较,应用两次 for 循环

具体代码:

void PrintArr(int* arr, int sz)

{

int i = 0;

for (i = 0; i < sz; i++)

{

printf("%d ", *(arr + i));

}

return 0;

}

void BubbleSort(int arr[],int sz)

{

int i = 0;

for (i = 0; i < sz - 1; i++)

{

int j = 0;

for (j = 0; j < sz - i - 1; j++)//用for循环的元素个数控住多少趟

{

if (arr[j] > arr[j + 1])

{

int tmp = arr[j];

arr[j] = arr[j+1];

arr[j + 1] = tmp;

}

}

}

}

int main()

{

int arr[10] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };

int sz = sizeof(arr) / sizeof(arr[0]);

BubbleSort(arr, sz);

PrintArr(arr, sz);

system("pause");

return 0;

}

2、指针形式。

创建两个变量start、end,记住数组起始与结束位置元素的地址,应用两次 while 循环交换地址

指针冒泡排序 :

void PrintArr(int* arr, int sz)

{

int i = 0;

for (i = 0; i < sz; i++)

{

printf("%d ", *(arr + i));

}

return 0;

}

void BubbleSort(int *arr, int sz)

{

int start = arr;

int end = arr + sz - 1;

//趟数

while (start < end)

{

int *cur = start;

while (cur < end)

{

if (*cur > *(cur+1))

{

int tmp = *cur;

*cur = *(cur + 1);

*(cur + 1) = tmp;

}

cur++;

}

end--;

}

}

int main()

{

int arr[10] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };

int sz = sizeof(arr) / sizeof(arr[0]);

BubbleSort(arr, sz);

PrintArr(arr, sz);

system("pause");

return 0;

}

(3)c语言从大到小输出for扩展阅读:

算法原理

冒泡排序算法的原理如下:

比较相邻的元素。如果第一个比第二个大,就交换他们两个。

对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个。

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

热点内容
c语言登陆界面 发布:2024-09-28 05:20:09 浏览:890
我的世界小本玩的服务器的地址 发布:2024-09-28 05:19:26 浏览:649
云服务器开传奇私服 发布:2024-09-28 05:19:22 浏览:134
360网盘不能上传 发布:2024-09-28 05:18:51 浏览:754
对于编译原理的学习 发布:2024-09-28 05:05:54 浏览:520
sql强制转换 发布:2024-09-28 04:46:13 浏览:444
phpwithldap 发布:2024-09-28 04:34:44 浏览:592
手机怎么给支付宝加密 发布:2024-09-28 04:20:52 浏览:693
怎么机wifi密码 发布:2024-09-28 04:19:25 浏览:777
win10安装密码怎么设置 发布:2024-09-28 04:18:42 浏览:897