#include<stdio.h>
#include <string.h>
#include<stdlib.h>
#define MAX 100
struct th
{ char dm[5]; //产品代码
char mc[11]; //产品名称
int dj; //单价
int sl; //数量
long je; //金额
}ob;
void SortDat(struct th ob[],int n)
{
int i,j,k,s=0,m=0; //i,j,k为循环用的变量,t,r为中转变量,s,m为终止条件
struct th t,r;
for( k= 1; k < n; k++)
{
for ( i = 0; i < n-k; i++)
{
if(s=0)
{
for(j = 0;j < 4; j++)
{
if ( ob[i].dm[j]<ob[i+1].dm[j] )
{
s=1;
}
if(ob[i].dm[j]==ob[i+1].dm[j])
{
m=0;
}
}
}
if(s=1)
{
t=ob[i];
ob[i]=ob[i+1];
ob[i+1]=t;
}
if(m=0)
{
ob[i].je=ob[i].sl*ob[i].dj;
if(ob[i].je<ob[i+1].je)
{
r=ob[i];
ob[i]=ob[i+1];
ob[i+1]=r;
}
}
}
}
for ( i = 0; i < n; i++)
{
for( j = 0; j < 10; j++)
{
printf("%f",ob[i].mc[j]);
}
}
}
void SortDat(struct th ob[],int n);
int main()
{
int n,i,j;
struct th ob[n];
printf("输入产品个数");
scanf("%d",&n);
for( i = 0; i < n; i++)
{
printf("输入第%d个产品单价",i+1);
scanf("%d",&ob[i].dj);
printf("输入第%d个产品数量",i+1);
scanf("%d",&ob[i].sl);
}
for ( i = 0; i < n; i++)
{
printf("输入第%d个产品的名称",i+1);
for ( j = 0; j < 10; j++)
{
scanf("%f",&ob[i].mc[j]);
}
}
for ( i = 0; i < n; i++)
{
printf("输入第%d个产品的代码",i+1);
for ( j = 0; j < 4; j++)
{
scanf("%d",&ob[i].dm[j]);
}
}
SortDat(ob,n); //主函数调用void函数,直接把void函数单独写一句,并对参数赋值就行,因没return返回值,所以无法用printf
system("pause");
return 0;
}
错误代码待更改
最新推荐文章于 2024-05-30 16:17:47 发布