第五题其实也写了,但是不对所以不想贴了,矩阵运算实在使人头疼
//计算税收。以前觉得好像只能if实现,原来也可以这样
#include <stdio.h>
#include <stdlib.h>
float stax( int money);
static double income_limits[]={0, 23350, 56550, 117950, 256500};
static float base_tax[]={0, 3502.5, 12798.5, 31832.5, 81710.5 };
static float percent[]={ .15, .28, .31, .36, .396 };
int main()
{
int money;
float tax;
printf("输入收入!\n");
scanf("%d",&money);
tax = stax( money );
printf("税收是%f", tax);
return 0;
}
float stax( int money)
{
int category;
for(category = 0; (money >=income_limits[category]) && (category < 5);category+=1)
;
category-=1;
return base_tax[category]+percent[category]*(money-income_limits[category]);
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//输入的每个单词与列表中的关键字比较,找到一个后返回这个匹配在列表中的偏移量,否则返回-1
int lookup_keyword(char * desired, char *keywordtable[ ], int size);
int main()
{
int i;
char a[20];
printf("输入关键字!\n");
gets(a);
char *keyword[4] = {
"do",
"sr",
"tt",
NULL
};
i=lookup_keyword(a, keyword,3);
printf("匹配%d\n",i);
return 0;
}
int lookup_keyword(char * desired, char *keywordtable[ ], int size)
{
char **kwp;
//for(kwp = keywordtable; kwp < keywordtable + size; kwp++)//第一种
for(kwp = keywordtable; *kwp != NULL; kwp++)
if(strcmp( desired,*kwp ) == 0)
return kwp - keywordtable;
return -1;
}