#include
"stdio.h"
void
start_information(
)
{
printf("The
program
begin!\n")
}
void
end_information(
)
{
printf("The
program
end!\n")
}
float
sort(float
x1,float
x2,float
x3)
/*定义函数的返回值类型,函数名,形参*/
{float
t
printf
("x1=%6.2f
x2=%6.2f
x3=
%6.2f
\n",x1,x2,x3)
if
(x1>x2)
{t=x1;x1=x2
x2=t}
if
(x1>x3)
{t=x1;x1=x3
x3=t}
if
(x2>x3)
{t=x2;x2=x3
x3=t}
printf
("x1=%6.2f
x2=%6.2f
x3=
%6.2f
\n",x1,x2,x3)
return(x3+x2+x1)
}
main(
)
{float
a,sum
start_information(
)
printf("please
enter
data(a):
")
/*输出提示信息,要求输入数据*/
scanf("%f",&a)
sum=sort(a+1,3.0,a)
printf("sum
is
%6.2f
\n",sum)
end_information(
)
}
a)错
main可以在程序的任何位置
b)
正确
c)
错,没有main也可以编译成obj文件,只是生不成执行程序
d)
错,一个程序可以有多个源文件组成,但main只能有一个
为了解决这个问题,你可以遍历字符串的每一个字符,根据字符的不同情况分别处理。
如果当前字符是第一个字符,并且它是 * 号,那么可以跳过这个字符,不将它加入到新的字符串中。
如果当前字符是最后一个字符,并且它是 * 号,那么可以忽略它。
如果当前字符是中间的字符,并且它是 * 号,那么可以查看它的前一个字符。
如果前一个字符是 * 号,则可以忽略当前字符。
如果前一个字符不是 * 号,则可以将当前字符替换为空格,并将前一个字符设置为 * 号,表示已经处理过了。
这样,你就可以在遍历字符串的同时,解决问题了。下面是一个例子:
#include <stdio.h>
#include <string.h>
void remove_asterisks(char *s)
{
int i, len
char prev_char = '\0'
len = strlen(s)
for (i = 0i <leni++)
{
if (i == 0 &&s[i] == '*')
{
continue
}
if (i == len - 1 &&s[i] == '*')
{
break
}
if (s[i] == '*')
{
if (prev_char == '*')
{
continue
}
else
{
s[i] = ' '
prev_char = '*'
}
}
else
{
prev_char = s[i]
}
printf("%c", s[i])
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)