C语言编程~~!!急~求大神帮助

2024-11-08 12:05:31
推荐回答(3个)
回答1:

#include
#include

#include

// 空格剪除函数
void trimall(char * _pStr)
{
int i, s, e, len;
len = strlen(_pStr);

// 找出前导空格截止位置

for(s= 0; s< len; s++);

{
if(_pStr[s] != 0x20)
break; // 第一个非空格字符时终止循环

}
if(s == len)

s = len-1;

// 找出尾部空格截止位置

for(e = len - 1; e >= 0; e--)

{
if(_pStr[s] != 0x20)
break;
}
if(e < 0)

e = 0;

// 移动字符,消除空格(此处可用memmov效率更高)

for(i = s; i < e; i++)

{

_pStr[i-s] = _pStr[i];

}

_pStr[i] = '\0'; // 字符串结束符
}

// 主函数
void main()
{
char str_sample[] = “ This is a test ”;

printf("原字符串:%s", str_sample);

trimall(str_sample);

printf("修剪空格后字符串:%s", str_sample);

}

回答2:

主函数就不写了。

void trimall(char *s)
{ char *p,*q;
int i,l;
while(s[0]=' ')
for(q=s,*q!='0';q++)*q=*(q+1); /*去串首空格*/
l=strlen(s);
i=l-1;
while(s[i]=' '&&i>=0) /*空串时i=0,防止出现i<0的异常情况*/
{ s[i]='\0';
i--;
} /*去串尾空格*/

回答3:

我只做了第二题,第一题没做过这类,所以暂时不做,看有没有大神能回答~顺便学习~~

至于第二题,我的思路是先自己构成公式,因为1角、5角和1元一样高,所以有相应关系(设个数分别为a,b,c)
则高度上有1.8a=1.5b=2.0c 全部转成跟a相关,则有b=1.2a c=0.9a
因为能换成若干张10元,所以有对应关系 0.1a+0.5b+1c=10n..
即(0.1a+0.5b+1c)%10=0 余数为0,再套用b、c与a的关系,得1.6a%10=0
还有一点~因为c与a关系是c=0.9a~~所以a个位数只能是0,不然c就不是整数了~
接着写程序~如下:
#include
#define num 1000
void main()
{
int a[50],b[50],c[50],j=0;
for (int i=1;i {
if ((16*i%100==0)&&(i%10==0)) //这里因为c的关系,i%10余数要等于0
{
a[j]=i;
b[j]=int(1.2*a[j]);
c[j]=int(0.9*a[j]);
j++;
}
}
for(i=0;i {
printf("%d,%d,%d,%d\n",a[i],b[i],c[i],16*a[i]/10);
}
}

最后得出楼主所要的答案~分别是1角,5角,1元,总金额