冒泡排序法
1.自定义函数change创建了一个中间的数组temp交换,strcpy(a,b)_______把B的值赋给A,,,,
2.为什么用++i,在这样的循环中使用 ++i
会更高效,因为它不需要在每次迭代结束后保留额外的临时值。而 i++
在某些情况下可能需要创建一个临时副本来存储旧值,然后再将 i
自增。
3.比较两个数组的大小——利用strcmp 函数,调用库函数 <string.h>
4.strcmp(A[],B[])>0___________A[]>B[]
5.循环次数的问题:
关于小循环J————每进行一次大i循环最后一位的数组就已经确定因此可以j<4- i
第一次进行4次,第二次进行3次。。。。。。
为什么i小于4就可以(4次大循环)——因为第一次确定最后一位,第二次确定到倒数2位。。。。。。。。第一位不用确定,因此5-1=4
降序排列字符串
编程题
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <string.h>
void change(char *str1, char *str2) {
char temp[100];
strcpy(temp, str1);
strcpy(str1, str2);
strcpy(str2, temp);
}
int main()
{
char arr1[5][100];
int i, j;
// printf("“请输入5个字符串\n");
for (int i = 0; i < 5; i++)
{
scanf("%s", arr1[i]);
}
for (int i = 0; i < 4; ++i)
{
for (int j = 0; j < 4-i; ++j)
{
if (strcmp(arr1[j], arr1[j+1]) > 0)
{
change(arr1[j], arr1[j+1]);
//交换两个字符
}
}
}
for (int i = 4; i >=0; i--)
{
printf("%s\n", arr1[i]);
}
return 0;
}