计算行列式

功能:输入任意阶数的行列式,输出结果

思考:

1)如何自动判断行列式的阶数?

  第一行以字符串形式输入,便于控制结束。阶数通过第一行的空格数判断(最后一个数字后的'\0'转化为空格)。第一行由字符串通过atof()转换成浮点型输入第一行,后 n-1 行直接输入。                                               

2)如何计算行列式

  利用递归不断计算余子式

//行列式计算

#include 
#include 
double count(double D[][100],int n);

int main(void)
{
    double D[100][100]={};
    int n=0, i, j=0, num=0;//D为行列式,n为行列号,num为位(包括数、符号和小数点)
    char a[100], digit[10]={};
    
    printf("Input D.\n");
//    通过输入第一行(当作字符串)来判断行列数n
    gets(a);
//    判断每个字符,到回车跳出
    for (i=0; a[i] != '\0'; i++)
    {
//        如果此字符是数字
        if ((a[i]>='0' && a[i]<='9') || a[i]=='-' || a[i]=='.')
        {
            digit[num] = a[i];
            num++;//这个数的位加一
//            防止不运行最后一个数
            if (a[i+1] == '\0')
            {
                a[i+1] = ' ';
                a[i+2] = '\0';
            }
        }
//        空格处算出这个数
        else if (a[i] == ' ')
        {
            D[0][n] = atof(digit);
            n++;
//            初始化位数num和digit[]
            for (j=0; j=i)
            {
                for (q=0; q

 

                  

 

你可能感兴趣的:(C)