可变参数的作业
#define _CRT_SECURE_NO_WARNINGS 0
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void bubble_str(char *str[], int sz)
{
int i = 0;
int j = 0;
for(i = 0;i<sz - 1;i++)
{
for(j = 0;j<sz - 1 - i;j++)
{
if(strcmp(*(str+ j), *(str + j + 1))>0)
{
char *tmp = *(str + j);
*(str + j) = *(str + j + 1);
*(str + j + 1) = tmp;
}
}
}
}
int main()
{
int i = 0;
char *str[] = { "cccc","bbbb","dddd", "aaaa"};
bubble_str(str, sizeof(str) / sizeof(*str));
for(i = 0;i<sizeof(str) / sizeof(*str);i++)
{
printf("%s ", *(str + i));
}
printf("\n");
system("pause");
return 0;
}
**.使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。 例如:命令行参数输入:test.exe -a 1 2。
执行1+2输出3 **
#define _CRT_SECURE_NO_WARNINGS 0
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, char* argv[])
{
int i = 0;
int ret = 0;
if (argc != 4)
{
printf("请检查你的参数\n");
return 0;
}
if (argv[1][0] == '-')
{
switch (argv[1][1])
{
case 'a':
ret = atoi(argv[2]) + atoi(argv[3]);
break;
case 's':
ret = atoi(argv[2]) - atoi(argv[3]);
break;
case 'm':
ret = atoi(argv[2])* atoi(argv[3]);
break;
case 'd':
ret = atoi(argv[2]) / atoi(argv[3]);
break;
default:
printf("第二个参数有误\n");
break;
}
}
printf("ret=%d\n", ret);
system("pause");
return 0;
}