#include
double jjcc(double st[],int k){
for(int j=1;jif(st[j]=='*'||st[j]=='/'){
if(st[j]=='*')
st[j-1]=st[j-1]*st[j+1];
else
st[j-1]=st[j-1]/st[j+1];
int y=j;
int n=0;
while(nst[y]=st[y+2];
y++;
n++;
}
k=k-2;
j--;
}
}
double sum=st[0];
for(int m=1;mif(st[m]=='+')
sum=sum+st[m+1];
else
if(st[m]=='-')
sum=sum-st[m+1];
return sum;
}
void main(){
int sum1=0;
int i,c=0;
printf("请输入算式(最后以'='结束):n");
char st1[200];
double st2[100],k,sum2;
gets(st1);
for(i=0;st1[i]!='=';){
sum2=0,k=1;
if(st1[i]>47&st1[i]<58){
sum1=(st1[i]-48)+sum1*10;
i++;
if(st1[i]=='.'){
i++;
while(st1[i]>47&st1[i]<58){
k=k*0.1;
sum2=(st1[i]-48)*k+sum2;
i++;
}
}
st2[c]=sum1+sum2;
}
else{
st2[++c]=st1[i];
i++;
sum1=0;
c++;
}
}
printf("%.4fn",jjcc(st2,c+1));
}
这是java中的吗? cin是C++把!
gets() // 接受一个字符串,可以接收空格并输出,需包含“#include
#include
#include
using namespace std;
main ()
{
char m[20];
gets(m); //不能写成m=gets();
cout< } 输入:jkljkljkl 输出:jkljkljkl 输入:jkl jkl jkl 输出:jkl jkl jkl cin.getline() // 接受一个字符串,可以接收空格并输出 #include using namespace std; main () { char m[20]; cin.getline(m,5); cout< } 输入:jkljkljkl 输出:jklj 接受5个字符到m中,其中最后一个为' ',所以只看到4个字符输出; 如果把5改成20: 输入:jkljkljkl 输出:jkljkljkl 输入:jklf fjlsjf fjsdklf 输出:jklf fjlsjf fjsdklf //延伸: //cin.getline()实际上有三个参数,cin.getline(接受字符串的看哦那间m,接受个数5,结束字符) //当第三个参数省略时,系统默认为' ' //如果将例子中cin.getline()改为cin.getline(m,5,'a');当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk 当用在多维数组中的时候,也可以用cin.getline(m[i],20)之类的用法: #include #include using namespace std; main () { char m[3][20]; for(int i=0;i<3;i++) { cout<<"n请输入第"<
cin.getline(m[i],20); } cout< for(int j=0;j<3;j++) cout<<;"输出m["< } 请输入第1个字符串: kskr1 请输入第2个字符串: kskr2 请输入第3个字符串: kskr3 输出m[0]的值:kskr1 输出m[1]的值:kskr2 输出m[2]的值:kskr3 1. gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为' '空字符,并由此来结束字符串。 2. 因为gets函数是以换行符为分隔,所以用一层循环即可读取一个二维数组。对于每行字符串,使用sscanf读取每个数。 例如: char s[100]; int a[3][3],i;for(i=0;i<3;i++){ gets(s); sscanf(s,"%d%d%d",s[i],s[i]+1,s[i]+2); }C语言中如何用gets语句来接收一个二维数组