首页 > 文章列表 > 使用gets函数进行数学运算

使用gets函数进行数学运算

237 2024-02-03

利用gets函数做四则运算

#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));

}

利用gets函数做四则运算

gets和getline的用法有什么区别

这是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

C语言中如何用gets语句来接收一个二维数组

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);

}