【发布时间】:2012-09-21 16:50:31
【问题描述】:
我正在编写一个今晚午夜到期的程序,但我完全被卡住了。该程序是用 C 编写的,并以 SOS 的形式从用户那里获取输入,其中 S = 字符串,O = 运算符(即“+”、“-”、“*”、“/”)。书中输入输出示例如下:
输入>abc+aab
输出:abc + aab => bce
这是字面上的,而不是可变的。比如,a + a 必须 = b。
执行此操作的代码是什么?我将发布到目前为止的代码,但它所做的只是获取输入并将其划分为每个部分。
#include <stdio.h>
#include <string.h>
int main() {
system("clear");
char in[20], s1[10], s2[10], o[2], ans[15];
while(1) {
printf("\nInput> ");
scanf("%s", in);
if (in[0] == 'q' && in[1] == 'u' && in[2] == 'i' && in[3] == 't') {
system("clear");
return 0;
}
int i, hold, breakNum;
for (i = 0; i < 20; i++) {
if (in[i] == '+' || in[i] == '-' || in[i] == '/' || in[i] == '*') {
hold = i;
}
if (in[i] == '\0') {
breakNum = i;
}
}
int j;
for (j = 0; j < hold; j++) {
s1[j] = in[j];
}
s1[hold] = '\0';
o[0] = in[hold];
o[1] = '\0';
int k;
int l = 0;
for (k = (hold + 1); k < breakNum; k++) {
s2[l] = in[k];
l++;
}
s2[breakNum] = '\0';
printf("%s %s %s =>\n", s1, o, s2);
}
}
【问题讨论】:
-
y+y在您的问题中的值是多少? -
所以你问如何确定答案,但你真的没有提供规则。从您的示例中,您似乎可以将每个字符的值设置为
character - 'a'以转换为数字,执行您的操作,然后再转换回来(通过添加“a”),但这只是推测 - 因为你没有' t 提供了规则。 -
@Tyler - 通常最好先编写 Pseduo 代码,然后才能在疯狂恐慌中敲出一些代码。这样你就可以只考虑算法,而不会因为编程语言的细微差别和弱点而混淆你的头脑。 (也许不要把事情留到最后一分钟是个好主意:-
-
如果我理解这个问题:z+z=z; z+y=y; y+y=x; y+a=z; y+b=a; y+c=b; z+a=a;所以它就像一个圆,如果我们到达 z 所以下一个元素将是 a
标签: c computer-science