c语言加减问题
输入数据有多组,每组的第一行有三个正整数s,p和n,表示储蓄罐中一开始有s元钱,最多能存p元钱,n表示操作次数。接下来有n行,每行由一个字符c和正整数m组成,其中c可以取...
输入数据有多组,每组的第一行有三个正整数s,p和n,表示储蓄罐中一开始有s元钱,最多能存p元钱,n表示操作次数。
接下来有n行,每行由一个字符c和正整数m组成,其中c可以取字符x和y(x表示存钱,y表示取钱),m为存取钱的数量(单位:元)。
1<=s,n,m<=100,p<=10000
输入以EOF结束。
输出
每组输出为一个整数,表示储蓄罐中还有多少元钱。
对于每次操作,如果不可能完成,该次操作无效(不进行任何操作)。
样例输入
0 10 3
x 5
y 2
x 10
0 10 1
x 10
样例输出
3
10 展开
接下来有n行,每行由一个字符c和正整数m组成,其中c可以取字符x和y(x表示存钱,y表示取钱),m为存取钱的数量(单位:元)。
1<=s,n,m<=100,p<=10000
输入以EOF结束。
输出
每组输出为一个整数,表示储蓄罐中还有多少元钱。
对于每次操作,如果不可能完成,该次操作无效(不进行任何操作)。
样例输入
0 10 3
x 5
y 2
x 10
0 10 1
x 10
样例输出
3
10 展开
4个回答
展开全部
for(k=0;a>8;b=++k)
for语句的格式为for(表达式1;表达式2;表达式3),先执行表达式1,且执行一次,然后依次循环执行表达式2、表达式3.由于++在前,先执行k加1的操作,再赋给b;
a--,由于--在后,先输出a的值,再做a-1的操作,--b
略。
此题目的解决突破口是搞清楚自加自减运算符的用法!
for语句的格式为for(表达式1;表达式2;表达式3),先执行表达式1,且执行一次,然后依次循环执行表达式2、表达式3.由于++在前,先执行k加1的操作,再赋给b;
a--,由于--在后,先输出a的值,再做a-1的操作,--b
略。
此题目的解决突破口是搞清楚自加自减运算符的用法!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选B,首先a=10>8为真,因此执行循环语句,(1)输出a,即10;然后a--变为9;(2)在执行--b,b变为9,输出b即9;(3)b=++k=1
(4)a=9>8再次执行循环
(5)输出a即9,然后a--变为8
(6)执行--b,b变为0,输出b即0,b=++k=1;(7)a=8不大于8,循环条件为假,结束
(4)a=9>8再次执行循环
(5)输出a即9,然后a--变为8
(6)执行--b,b变为0,输出b即0,b=++k=1;(7)a=8不大于8,循环条件为假,结束
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
举两个例子
假设
b=1
k=2
b=++k
是先把K自身加1
最后b=k自身加1的数
这个打印出来结果是
b=3
k=3;
b=k++
是先b=k
然后k在自身加1
这个打印出来结果是
b=2
k=3;
++放在先后的意思就是一个早加
一个晚加
假设
b=1
k=2
b=++k
是先把K自身加1
最后b=k自身加1的数
这个打印出来结果是
b=3
k=3;
b=k++
是先b=k
然后k在自身加1
这个打印出来结果是
b=2
k=3;
++放在先后的意思就是一个早加
一个晚加
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{
int s, p, n;
char c;
int m;
int result[10000]; //这儿给的是10000组,如果不够用,就把这儿增大
int groupCount = 0;
int i;
while(scanf("%d%d%d", &s, &p, &n) != EOF){
while(n){
setbuf(stdin, NULL);
scanf("%c%d", &c, &m);
switch(c){
case 'x':
if(m + s <= p)
s += m;
break;
case 'y':
if(m <= s)
s -= m;
break;
}
n--;
}
result[groupCount++] = s;
}
for(i = 0; i < groupCount; i++)
printf("%d\n", result[i]);
return 0;
}
int main()
{
int s, p, n;
char c;
int m;
int result[10000]; //这儿给的是10000组,如果不够用,就把这儿增大
int groupCount = 0;
int i;
while(scanf("%d%d%d", &s, &p, &n) != EOF){
while(n){
setbuf(stdin, NULL);
scanf("%c%d", &c, &m);
switch(c){
case 'x':
if(m + s <= p)
s += m;
break;
case 'y':
if(m <= s)
s -= m;
break;
}
n--;
}
result[groupCount++] = s;
}
for(i = 0; i < groupCount; i++)
printf("%d\n", result[i]);
return 0;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询