char字符串里都是数字,想转换成int类型进行计算,结果转换出来就是一堆0。
没有报错
#include <stdio.h>
#include <stdlib.h>
//Ax+By=C
//Dx+Ey=F
//x=(CE-BF)/(AE-bD)
//y=(CD-AF)/(BD-aE)
int main(){
char A[] = "";
char B[] = "";
char C[] = "";
char D[] = "";
char E[] = "";
char F[] = "";
printf("请按照以下格式输入方程组 Ax+By=C;Dx+Ey=F\n");
char str[32] = "";
scanf("%s",str);
printf("方程组为 %s\n", str);
sscanf(str,"%[^x]",A);
printf("%s\n", A);
sscanf(str,"%*[^+]+%[^y]",B);
printf("%s\n", B);
sscanf(str,"%*[^=]=%[^;]",C);
printf("%s\n", C);
sscanf(str,"%*[^;];%[^x]",D);
printf("%s\n", D);
sscanf(str,"%*[^;]%*[^+]+%[^y]",E);
printf("%s\n", E);
sscanf(str,"%*[^;]%*[^=]=%s",F);
printf("%s\n", F);
int num1, num2, num3, num4, num5, num6, x, y;
num1 = atoi(A);
num2 = atoi(B);
num3 = atoi(C);
num4 = atoi(D);
num5 = atoi(E);
num6 = atoi(F);
printf("%d\n",num1);
printf("%d\n",num2);
printf("%d\n",num3);
printf("%d\n",num4);
printf("%d\n",num5);
printf("%d\n",num6);
//x = (num1 * num5 -num2 * num6) / (num1 * num5 - num2 * num4);
//printf("%d,",x);
//x=(CE-BF)/(AE-bD)
//y=(CD-AF)/(BD-aE)
return 0;
}
尝试了这样写,结果成功了,但原算法出了什么问题呢
#include<stdio.h>
#include<stdlib.h>
int main()
{
char b[18];
int num;
scanf("%s",b);//对char型数组进行赋值 如:123456789
num = atoi(b);
printf("%d",num);
int C = num + 10;
printf("%d",C);
return 0;
}
其实就是提取数字计算,但系数为1的情况也没啥思路,是不是要用if,但怎么检测呢,刚学实在没啥见识