-->
当前位置:首页 > 题库 > 正文内容

程序填空题:是负数吗?

Luz4年前 (2021-05-10)题库4147
是负数吗?

输入一个以#结束的字符串,滤去所有的非十二进制字符(不分大小写),组成一个新的表示十二进制数字的字符串,并输出新的字符串。过滤时,如果在第一个十二进制数字字符前出现“-”,代表该字符串对应的数是负数,则先输出“-”,再输出字符串。题目假设过滤后的字符串不为空。

```c++
#include
int main()
{
int flag, i, j;
char str[81], newstr[81];

i = 0;
while@@[((str[i] = getchar()) != '#')](1){
i++;
}
str[i] = '\0';

i = j = 0;
flag = 0;
while (str[i] != '\0'){
if@@[ ((str[i] >= '0' && str[i] <= '9') || (str[i] >= 'a' && str[i] <= 'b') || (str[i] >= 'A' && str[i] <= 'B'))](1){
newstr[j] = str[i];
j++;
}else if@@[(j == 0 && str[i] == '-' && flag == 0)](1){
flag = 1;
}
i++;
}
newstr[j] = '\0';

if (flag == 1){
putchar('-');
}
for(i = 0; newstr[i] != '\0'; i++){
putchar(newstr[i]);
}
putchar('\n');

return 0;
}
```






答案:
第1空:((str[i] = getchar()) != '#')

第2空: ((str[i] >= '0' && str[i] <= '9') || (str[i] >= 'a' && str[i] <= 'b') || (str[i] >= 'A' && str[i] <= 'B'))

第3空:(j == 0 && str[i] == '-' && flag == 0)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。