1.冒泡排序排多个字符串
思路:
1.使用一个二维数组来存放字符串,一行代表一个字符串
2.对一行的字符串进行冒泡排序,排完这一行之后对下一行排序。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define S 3 //行数
#define N 10 //列数
Exchage(char *p, char *q)//交换两个字符
{
char tmp = *p;
*p = *q;
*q = tmp;
}
void Sort(char arr[S][N])
{
int x = 0;
while(x < S)
{
int j = 0;
int i = 0;
int y = strlen(arr[x]);//计算这个字符串的长度
for(i = 0; i < y-1; i++)//冒泡排序
{
for(j = 0; j < y-i-1; j++)
{
if(arr[x][j] >arr[x][j+1])//如果第一个字符大于第二个字符,交换这两个字符
{
Exchage(&arr[x][j],&arr[x][j+1]);
}
}
}
x++;//下一行
}
}
int main()
{
char a[S][N] = {"asddfg","WERTDFG","DRFCFGHJ"};
int i = 0;
Sort(a);
for(i = 0; i < S; i++)
{
printf("%s\n", a[i]);
}
system("pause");
return 0;
}
2.使用main函数实现一个整数计算器,程序可以接受三个参数
列如 :命令行参数输入:text.exe -a 1 2
执行1+2输出3
#include<stdio.h>
#include<stdlib.h>
int Add(int x, int y)
{
return x+y;
}
int Sub(int x, int y)
{
return x-y;
}
int Mul(int x, int y)
{
return x*y;
}
int Div(int x, int y)
{
return x/y;
}
int main(int argc, char* argv[], int *envy)
{
int z = 0;
int a = atoi(argv[2]);
int b = atoi(argv[3]);
if(argc != 4)
{
printf("参数有误");
return 0;
}
switch(*(argv[1]+1))//读取命令行参数-a中的a
{
case 'a':
z = Add(a,b);
break;
case 'b':
z = Sub(a,b);
break;
case 'c':
z = Mul(a,b);
break;
case 'd':
z = Div(a,b);
break;
default: printf("没有找到"); break;
}
printf("%d", z);
system("pause");
return 0;
}