有道程序填空题,请高手帮帮忙,就一个空格,简单

来源:百度知道 编辑:UC知道 时间:2024/05/25 09:35:10
*--------* (要填的地方) 看图片
题目是:程序填空,不要改变与输入输出有关的语句.
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入一个以回车结束的字符串(少于80个字符),滤去所有的非十六进制字符后,组成一个新字符串(16进制形式),然后将其转换为十进制数后输出.
输入输出实例:括号内为说明 -图片里

这样可以,编译测试通过

#include<stdio.h>
#include<string.h>
#include<math.h>
#define MAXLEN 80
int main(void)
{
char ch;
char str[MAXLEN], num[MAXLEN];
int i, k;
int repeat, ri;
long number;

scanf("%d", &repeat);
getchar();
for(ri=1; ri<=repeat; ri++){
i = 0;
while((ch =getchar())!='\n'){
str[i]=ch;
i++;
}
str[i]=0;

ch=0;
for(k=0; k<i; k++)if(str[k]>='0'&&str[k]<='f')ch++;
number=0;
for(k=0; k<i; k++){
if(str[k]>='0'&&str[k]<='9'){
number+=(str[k]-'0')*pow(16,--ch);
}
if(str[k]>='a'&&str[k]<='f'){
number+=(str[k]-'a'+10)*pow(16,--ch);
}
if(str[k]>='A'&&str[k]<='F'){
number+=(str[k]-'A'+10)*