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

2024-11-08 11:49:21
推荐回答(4个)
回答(1):

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

至于第二题,我的思路是先自己构成公式,因为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元,总金额

回答(2):

程序一:
#include
int main()
{
int n=0;
int i=0;

scanf( "%d" , &n );
for( i=0;i{
int width=0 ;
int j=0 ;
width=2*(n-i-1)-1 ;
for ( j=0;jprintf(" " );
printf("*"); //左边

for ( j=0;jprintf(" " ); //两*间距
if ( i < n-1 )
printf("*"); //中间*
for ( j=0;j<2*i-1;j++ ) //中间两*间距
printf(" " );
if ( i> 0 && i< n-1 ) //非头尾,有四*
printf("*");
for ( j=0;jprintf(" " );
printf("*"); //右边
printf("\n");
}
return 0;
}
程序二:
#include

int main()
{
//为方便程序书写,将厚度扩大10倍,金额以角为单位
//设一角的x个,五角的y个,一元的z个
//于是有 18x = 15y = 20z
//且总金额是 (x+5y+10z)与100的最小公倍数
//18 15 20的最小公倍为3*3*5*2*2=180 ,
//其实这个程序可以利用最小公倍算法来实现任意数据的情况,本程序以解决既定数据为目的,就不写这样函数了。
int x,y,z,m ;

x=180/18 ;
y=180/15 ;
z=180/20 ;
for ( m=1;;m++ )
if ( m*(x+5*y+10*z) %100 == 0 )
break;

printf("%d,%d,%d,%d\n",x*m,y*m,z*m,m*(x+5*y+10*z)/10 );
return 0;
}
输出:
50,60,45,80
显然你举的例子50,30,40,60不满足条件(厚度不一致)!

回答(3):

#include
void put_w(int n);//输出 W
void cacl();//计算资金
int minGBS(int n1, int n2, int n3);//求最小公倍数
void main()
{
put_w(15);
cacl();
}

void cacl()
{
int h1= 18,
h5= 15,
h10= 20;

int GBS= minGBS(18, 15, 20);//最小公倍数
int Min= GBS/h1/10+GBS/h5/2+GBS/h10;//求出最小公倍数下 可以组成多少块钱
for(int i= 1; i <= 10 ; i++)//求出多少倍的 最小公倍数钱 是10块的倍数
{
if( (Min*i)%10==0 )
break;
}

printf("1角的枚数:%d,5角的枚数:%d,1元的枚数:%d,总金额元数:%d\n\n",
GBS/18*i, GBS/15*i, GBS/20*i, Min*i);
}

int minGBS(int n1, int n2, int n3)
{
int n= n1 > n2 ? n1 : n2;
n= n > n3 ? n : n3;

for(n; n < n1*n2*n3; n++)
{
if(n%n1== 0 && n%n2==0 && n%n3==0)
break;
}
return n;
}

void put_w(int n)
{
for(int x= 0; x < n; x++)
{
for(int y= 0; y < 4*n-3; y++)
{
if( y== x ||
y== -x+2*(n-1) ||
y== x+2*(n-1) ||
y== -x+4*(n-1) )

printf("*");
else
printf(" ");
}
printf("\n");
}
printf("\n");
}

回答(4):

现在没有空,晚上给你写。