#include <stdio.h> int main(void) { int n,i,j; int index,temp; int a[10]; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&a[i]); for(j=0;j<n-1;j++) { index=j; for(i=j+1;i<n;i++) if(a[i]>a[index]){ index=i; } } temp=a[index]; a[index]=a[j]; a[j]=temp; } for(i=0;i<n;i++){ printf("%d ",a[i]); } printf("\n"); return 0; }换一种c语言的方法
时间: 2023-06-21 20:21:53 浏览: 54
选择排序是一种比较基础的排序算法,C 语言中可以使用不同的语法结构实现。以下是使用 while 循环实现选择排序的 C 语言程序:
```
#include <stdio.h>
int main(void) {
int n, i, j, index, temp;
int a[10];
scanf("%d", &n);
for(i=0; i<n; i++) {
scanf("%d", &a[i]);
}
i = 0;
while(i<n) {
index = i;
j = i+1;
while(j<n) {
if(a[j] > a[index]) {
index = j;
}
j++;
}
temp = a[i];
a[i] = a[index];
a[index] = temp;
i++;
}
for(i=0; i<n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
这个程序的基本思路与之前的程序相同,只是使用了 while 循环来实现。
相关问题
#define N 10 /*定义符号常量 N 为 10*/ #include <stdio.h> void main() { int a[N],i,j,temp; printf("please input %d numbers\n",N); }继续编写
可以继续编写输入数组元素的代码和排序代码,实现对输入数组元素进行排序的功能。
```c
#define N 10 /*定义符号常量 N 为 10*/
#include <stdio.h>
int main() {
int a[N], i, j, temp;
printf("please input %d numbers\n", N);
for (i = 0; i < N; i++) {
scanf("%d", &a[i]);
}
for (i = 0; i < N - 1; i++) {
for (j = 0; j < N - 1 - i; j++) {
if (a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
printf("the sorted array is:\n");
for (i = 0; i < N; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
以上代码实现了输入10个数,排序后输出的功能。用户输入10个数后,程序使用冒泡排序将这些数从小到大排序,最后输出排序后的数组元素。
*定义函数实现n个字符串按字典顺序排序 开头: #include<stdio.h> #include<string.h> void fun (char *str[],int n)
好的,以下是一个实现n个字符串按字典顺序排序的示例代码:
```
#include <stdio.h>
#include <string.h>
void fun(char *str[], int n) {
int i, j;
char *temp;
// 使用冒泡排序算法
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (strcmp(str[j], str[j+1]) > 0) {
// 交换两个字符串的位置
temp = str[j];
str[j] = str[j+1];
str[j+1] = temp;
}
}
}
}
int main() {
char *str[] = {"apple", "banana", "orange", "grape", "kiwi"};
int n = sizeof(str) / sizeof(str[0]);
fun(str, n);
printf("排序后的字符串数组:\n");
for (int i = 0; i < n; i++) {
printf("%s ", str[i]);
}
printf("\n");
return 0;
}
```
在这个示例代码中,我们使用了冒泡排序算法对字符串数组进行排序。在排序过程中,我们使用了 `strcmp()` 函数来比较两个字符串的大小关系,并使用指针变量 `temp` 来交换两个字符串在数组中的位置。最后,我们输出排好序的字符串数组。
请注意,这个示例代码中的字符串数组是在程序中直接定义的。如果您需要从用户输入中获取字符串数据,请使用 `scanf()` 或其他输入函数来读取数据,并将它们存储在字符串数组中。