某长生产的塑料制品 (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编辑过]
有点问题 谁看出来了 说说
要是谁有个更好的解发 发出来
#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);
}