当前位置: 代码迷 >> C语言 >> [讨论]出一道下小题 大家看看
  详细解决方案

[讨论]出一道下小题 大家看看

热度:143   发布时间:2006-06-07 18:37:00.0
[讨论]出一道下小题 大家看看

某长生产的塑料制品 (10种)

名称 颜色 单价 (固定)

定单:超过5000 打 7 折

输入:只输入你要买东西的个数

输出:买的每个东西都列出来 还要按降顺排列

搜索更多相关的解决方案: 塑料制品  生产  

----------------解决方案--------------------------------------------------------


要是谁有个更好的解发 发出来

#include <stdio.h>
#include <string.h>
#define N 3

struct cp
{
char cm[10];
char ys;
double price;
int num;
double total;
};

void px(struct cp *p,int n)
{
int i,j;
struct cp t,*q;

printf("产品名称 颜色 \t 单价 \t 数量 \t 总价");

for (i = 0,p;i < n-1;i++,p++)
{
for (j = i+1,q = p+1;j < n;j++,q++)
{
if (p->total > q->total)
{
t = *p;
*p = *q;
*q = t;
}
}
}
printf("%s \t %c \t %lf \t %d \t %lf",p->cm,p->ys,p->price,p->num,p->total);
printf("\n");
}

void cpinf(struct cp a[],int n)
{
int i;

printf("输入数据:\n产品名称 颜色 \t 价格 \t 数量\n");

for (i = 0;i < n;i++)
{
scanf("%s",&a[i].cm);

getchar();

scanf("%c%lf%d",&a[i].ys,&a[i].price,&a[i].num);

if (a[i].num >= 5000)

a[i].price = a[i].price*0.7;

a[i].total = a[i].price*a[i].num;

printf("%s \t %c \t %.2lf \t %d \t %.2lf \n",a[i].cm,a[i].ys,a[i].price,a[i].num,a[i].total);
}
}

void cpouf(struct cp a[],int n)
{
int i;

for (i = 0;i < n;i++)
{
printf(" %s \t %c \t %.2lf \t %d \t %.2lf \n",a[i].cm,a[i].ys,a[i].price,a[i].num,a[i].total);
}
}


void main()
{
struct cp a[N];
cpinf(a,N);
px(a,N);
cpouf(a,N);
}

[此贴子已经被作者于2006-6-7 20:40:27编辑过]


----------------解决方案--------------------------------------------------------
有更好的  一定发出来看看哦

[此贴子已经被作者于2006-6-7 20:46:37编辑过]



----------------解决方案--------------------------------------------------------
以下是引用龙轩v亚风在2006-6-7 18:38:00的发言:

有点问题 谁看出来了 说说

要是谁有个更好的解发 发出来

#include <stdio.h>
#include <string.h>
#define N 3

struct cp
{
char cm[10];
char ys;
double price;
int num;
double total;
};

void px(struct cp *p,int n)
{
int i,j;
struct cp t,*q;

printf("产品名称 颜色 \t 单价 \t 数量 \t 总价");

for (i = 0,p;i < n-1;i++,p++)
{
for (j = i+1,q = p+1;j < n;j++,q++)
{
if (p->total > q->total)
{
t = *p;
*p = *q;
*q = t;
}
}
}
printf("%s \t %c \t %lf \t %d \t %lf",p->cm); //输出项1个少于格式5个,why?
printf("\n");
}

void cpinf(struct cp a[],int n)
{
int i;

printf("输入数据:\n产品名称 颜色 \t 价格 \t 数量\n");

for (i = 0;i < n;i++)
{
scanf("%s",&a[i].cm);

getchar();

scanf("%c%lf%d",&a[i].ys,&a[i].price,&a[i].num);

if (a[i].num >= 5000)

a[i].price = a[i].price*0.7;

a[i].total = a[i].price*a[i].num;

printf("%s \t %c \t %.2lf \t %d \t %.2lf \n",a[i].cm,a[i].ys,a[i].price,a[i].num,a[i].total);
}
}

void cpouf(struct cp a[],int n)
{
int i;

for (i = 0;i < n;i++)
{
printf(" %s \t %c \t %.2lf \t %d \t %.2lf \n",a[i].cm,a[i].ys,a[i].price,a[i].num,a[i].total);
}
}


void main()
{
struct cp a[N];
cpinf(a,N);
px(a,N);
cpouf(a,N);
}


----------------解决方案--------------------------------------------------------
弄了弄 可是还是 有问题

你的建议是我怎么改呢 这个用的有点糊涂了
----------------解决方案--------------------------------------------------------

日啊 真笨 吃饭的时候才想出来 错的这么猪啊!!!
呵呵 丢人了 菜蛋么 见量!
那么大家有没有更好点的程序 发来看看 本人期盼中...

#include <stdio.h>
#include <string.h>
#define N 3

struct cp
{
char cm[10];
char ys;
double price;
int num;
double total;
};

void px(struct cp *p,int n)
{
int i,j;
struct cp t,*q;

printf("\n产品名称 颜色 \t 单价 \t 数量 \t 总价");

for (i = 0,p;i < n-1;i++,p++)
{
for (j = i+1,q = p+1;j < n;j++,q++)
{
if (p->total > q->total)
{
t = *p;
*p = *q;
*q = t;
}
}
}
printf("%s \t %c \t %.2lf \t %d \t %.2lf",p->cm,p->ys,p->price,p->num,p->total);
printf("\n");
}

void cpinf(struct cp a[],int n)
{
int i;

printf("输入数据:\n产品名称 颜色 \t 价格 \t 数量\n");

for (i = 0;i < n;i++)
{
scanf("%s",&a[i].cm);

getchar();

scanf("%c%lf%d",&a[i].ys,&a[i].price,&a[i].num);

if (a[i].num >= 5000)

a[i].price = a[i].price*0.7;

a[i].total = a[i].price*a[i].num;

printf("%s \t %c \t %.2lf \t %d \t %.2lf \n",a[i].cm,a[i].ys,a[i].price,a[i].num,a[i].total);
}
}

void cpouf(struct cp a[],int n)
{
int i;

for (i = 0;i < n;i++)
{
printf(" %s \t %c \t %.2lf \t %d \t %.2lf \n",a[i].cm,a[i].ys,a[i].price,a[i].num,a[i].total);
}
}


void main()
{
struct cp a[N];
cpinf(a,N);
px(a,N);
cpouf(a,N);
}


----------------解决方案--------------------------------------------------------
五角星    你发现了么  那个本错的那句话 没什么用么  ?
----------------解决方案--------------------------------------------------------
相信你有消灭BUG的能力,条件是先练逾迦功,所谓气定神闲。
----------------解决方案--------------------------------------------------------
哦 昨天回复的没在

谢谢了 五角星

有没有空帮我 想个更好点的 解决方法!

谢谢各位帮忙看看 我觉得 打的东西好多
----------------解决方案--------------------------------------------------------
  相关解决方案