c语言题目!求高手解答!在线等!
4.编程,输入一行加减运算的字符串(少于80个字符),计算加减运算的结果。输入输出示例:10+52-28y=34提示:1)如果输入的字符串中包括数字和加减号以外的字符,提...
4.编程,输入一行加减运算的字符串(少于80个字符),计算加减运算的结果。
输入输出示例:
10+52-28
y=34
提示:
1)如果输入的字符串中包括数字和加减号以外的字符,提示输入错误。
2)把加减运算符两侧的字符串转换为整数,再运算
5.编程,输入一个字符ch和一个以回车符结束的字符串(少于80个字符),统计字符串中与ch相同的字母个数。 展开
输入输出示例:
10+52-28
y=34
提示:
1)如果输入的字符串中包括数字和加减号以外的字符,提示输入错误。
2)把加减运算符两侧的字符串转换为整数,再运算
5.编程,输入一个字符ch和一个以回车符结束的字符串(少于80个字符),统计字符串中与ch相同的字母个数。 展开
3个回答
展开全部
/************** (4) *************/
#include<stdio.h>
#include<string.h>
int main(){
char a[80],c,op=0;
int i=0,r=0,x=0,len;
scanf("%s",a);
len=strlen(a);
c=a[0];
if(c=='+' || c=='-') /*允许首字符为+-号 */
op=c;
while(i<len){
c=a[i];
if( !(c=='+' || c=='-' || c>='0' && c<='9') ){
printf("Error!\n");
return 1;
}
if(c>='0' && c<='9')
x=x*10+c-48; /* '0'的ASCII码=48 */
else if(c=='+' || c=='-'){
if(op=='+'){
r=r+x;
x=0;
}else if(op=='-'){
r=r-x;
x=0;
}else{
r=x;
x=0;
}
op=c;
}
i++;
} //while
if(x!=0)
if(op=='+')
r=r+x;
else
r=r-x;
printf("r=%d\n",r);
return 0;
}
/************** (5) *************/
#include<stdio.h>
#include<string.h>
int main(){
char a[80],c;
int i=0,n=0,len;
printf("c=?");
scanf("%c",&c);
printf("string=?");
scanf("%s",a);
len=strlen(a);
printf("%s,%d\n",a,len);
for(i=0;i<len;i++)
if(a[i]==c)
n++;
printf("n=%d\n",n);
}
#include<stdio.h>
#include<string.h>
int main(){
char a[80],c,op=0;
int i=0,r=0,x=0,len;
scanf("%s",a);
len=strlen(a);
c=a[0];
if(c=='+' || c=='-') /*允许首字符为+-号 */
op=c;
while(i<len){
c=a[i];
if( !(c=='+' || c=='-' || c>='0' && c<='9') ){
printf("Error!\n");
return 1;
}
if(c>='0' && c<='9')
x=x*10+c-48; /* '0'的ASCII码=48 */
else if(c=='+' || c=='-'){
if(op=='+'){
r=r+x;
x=0;
}else if(op=='-'){
r=r-x;
x=0;
}else{
r=x;
x=0;
}
op=c;
}
i++;
} //while
if(x!=0)
if(op=='+')
r=r+x;
else
r=r-x;
printf("r=%d\n",r);
return 0;
}
/************** (5) *************/
#include<stdio.h>
#include<string.h>
int main(){
char a[80],c;
int i=0,n=0,len;
printf("c=?");
scanf("%c",&c);
printf("string=?");
scanf("%s",a);
len=strlen(a);
printf("%s,%d\n",a,len);
for(i=0;i<len;i++)
if(a[i]==c)
n++;
printf("n=%d\n",n);
}
展开全部
第一个题目不是很难,主要就是判断和赋值
写出思路,不给出全部啊
int i,j,k,zhi;
char a[81],b[][],c[];
int d[][],e[];
a[]=getchar();
for(i=0;a[i]!='\0';i++)
if(a[i]=='0'||a[i]=='1'||a[i]=='2'||a[i]=='3'||a[i]=='4'||a[i]=='5'||a[i]=='6'||a[i]=='7'||a[i]=='8'||a[i]=='9'||a[i]=='+'||a[i]=='-'||a[i]=='*'||a[i]=='/')
continue;
else
{
printf("Error!!!");
exit (0);
}
j=0;
k=0;
for(i=0;a[i]!='\0';i++)
{
if(a[i]!='+'||a[i]!='-'||a[i]!='*'||a[i]!='/')
{
b[j][k]=a[i]; //操作数赋值
k++;
}
else
{
c[j]=a[i]; //加减乘除赋值
j++;
b[j][k]='\0'; //最后一个赋值'\0'
k=0;
}
for(i=0,j=0;b[i][j]!='\0';) //操作数变化
d[i][j]=(int)(b[i][j]-='0');
}
明天再写了,今天太晚了
写出思路,不给出全部啊
int i,j,k,zhi;
char a[81],b[][],c[];
int d[][],e[];
a[]=getchar();
for(i=0;a[i]!='\0';i++)
if(a[i]=='0'||a[i]=='1'||a[i]=='2'||a[i]=='3'||a[i]=='4'||a[i]=='5'||a[i]=='6'||a[i]=='7'||a[i]=='8'||a[i]=='9'||a[i]=='+'||a[i]=='-'||a[i]=='*'||a[i]=='/')
continue;
else
{
printf("Error!!!");
exit (0);
}
j=0;
k=0;
for(i=0;a[i]!='\0';i++)
{
if(a[i]!='+'||a[i]!='-'||a[i]!='*'||a[i]!='/')
{
b[j][k]=a[i]; //操作数赋值
k++;
}
else
{
c[j]=a[i]; //加减乘除赋值
j++;
b[j][k]='\0'; //最后一个赋值'\0'
k=0;
}
for(i=0,j=0;b[i][j]!='\0';) //操作数变化
d[i][j]=(int)(b[i][j]-='0');
}
明天再写了,今天太晚了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第五题的
#include <stdio.h>
void main()
{
int i,count=0;
char ch,s[80];
printf("请输入一个字符ch:");
scanf("%c",&ch);
fflush(stdin);
printf("请输入字符串:");
gets(s);
for(i=0;s[i]!='\0';i++)
if(s[i]==ch)
count++;
printf("与ch相同的字符的个数为%d\n",count);
}
#include <stdio.h>
void main()
{
int i,count=0;
char ch,s[80];
printf("请输入一个字符ch:");
scanf("%c",&ch);
fflush(stdin);
printf("请输入字符串:");
gets(s);
for(i=0;s[i]!='\0';i++)
if(s[i]==ch)
count++;
printf("与ch相同的字符的个数为%d\n",count);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询