本文目录一览:
C语言,数据升序排列
#include "stdio.h"
int main(int argc, char *argv[]) {
int a[100], i, j, k, n;
printf("Input n (int 0 < n < 101)...\n");
if (scanf("%d", &n) != 1 || n < 1 || n > 100) {
printf("An error occurred when input n, exit...\n");
return 0;
}
printf("Please enter %d integer(s)...\n", n);
for (i = 0; i < n; scanf("%d", a + i++));
for (i = 0; i < n; i++) {
for (k = i, j = k + 1; j < n; j++)
if (a[k] > a[j])
k = j;
if (k - i)
j = a[k], a[k] = a[i], a[i] = j;
printf(i ? " %d" : "%d", a[i]);
}
printf("\n");
return 0;
}
运行样例:
C语言字符升序排列~
输入10个字符串,并按字母从小到大排序
#include "stdio.h"
#include "string.h"
void sort(char array[][20], int n);
main(void) {
char str[10][20];
int i, j, k, n;
printf("input n (n=10):");
scanf("%d", &n);
printf("input %d string:", n);
for (i = 0; i < n; i++)
gets(str[i]); // 输入N个字符串
sort(str, n); // 对输入的字符串排序
printf("sort string:\n");
for (i = 0; i < n; i++)
puts(str[i]);
return 0;
}
void sort(char array[][20], int n) // 定义排序函数
{
char temp[20];
int i, j, k;
for (i = 1; i < n - 1; i++) {
k = i;
for (j = i + 1; j < n; j++)
if (strcmp(array[k], array[j]) > 0)
k = j;
if (k != i) {
strcpy(temp, array[i]); // 字符串交换顺序
strcpy(array[i], array[k]);
strcpy(array[k], temp);
}
}
}
如上源码所示,其实也不难发现,就一个排序函数便可以解决;解决思想,还是交换法;在这里明白字符串数组str[0]
,便是第一个主的字符串,跟这个2维str[0][20]
是一个意思。
C语言的升序和降序
#include<stdio.h>
void main() {
int a[5] = {};
int i, j;
int temp = 0;
for (i = 0; i < 5; i++) {
printf("请输入第%d个整数\n", i + 1);
scanf("%d", &a[i]);
}
for (i = 1; i < 5; i++) {
for (j = 0; j < 5 - i; j++) {
if (a[j] > a[j + 1]) // 把大于号改成小于号
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for (i = 0; i < 5; i++) {
printf("排序后的整数:%d\t", a[i]);
}
}
if(a[j]a[j+1])....................//把大于号改成小于号