求大佬给菜鸟解答,vc每次运行都会出现这个错误:[Error] ld returned 1 exit status

阿阿阿阿阿阿狗 2020-06-04 02:38:45
代码如下:#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
struct node
{
int no[12];//销售员工代号 char name[20];//销售员工姓名 int month[12];//月份 float sales[12];//月销售额 float total;//年度总销售额
}node[200];
int n=200;
void main()
{
void input();
void insert();
void revise();
void delete();
void all();
void line();
int i;
while(1)
{ printf("销售管理系统\n"); printf("0退出销售管理系统\n"); printf("1录入销售员信息\n"); printf("2查找销售员信息\n"); printf("3修改销售员信息\n"); printf("4删除销售员信息\n"); printf("5统计所有销售员的年度总销售额\n"); printf("6找出最大或最小的月销售额和年度总销售额\n"); printf("请选择需要操作的功能\n"); scanf("%d",&i); switch(i) { case 0: exit(0);break; case 1: printf("录入销售员信息\n");break; case 2: printf("查找销售员信息\n");break; case 3: printf("修改销售员某个月的销售额\n");break; case 4: printf("删除销售员信息\n");break; case 5: printf("统计所有销售员的年度总销售额\n");break; case 6: printf("找出最大或最小的月销售额和年度总销售额\n");break; default:printf("输入错误,请重新选择!!");break; }
}
}
void input()//录入信息
{
int i,n,j;
printf("请输入销售人员个数\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("请输入销售员代号:\n");
scanf("%d",node[i].no);
printf("请输入销售员姓名:\n");
scanf("%s",node[i].name);
printf("请输入销售员的月销售额:\n");
for(j=0;j<12;j++)
{ scanf("%lf",node[i].sales[j]); }
printf("请输入销售员的年度总销售额:\n");
scanf("%lf",node[i].total); }
}
void insert()//查找信息
{
int i,k,m; printf("请输入您需要查找的销售员代号:"); scanf("%d",&i); for(k=0;k<n;k++) if(i==node[k].no) printf("销售员代号 姓名 月销售额 年度总销售额:\n"); for(m=0;m<12;m++) printf("%d%s%lf%lf\n",node[n].no,node[n].name,node[n].sales[m],node[n].total);
printf("\n\n");
}
void revise(struct node no[],int n)//修改信息
{
int i,x,k,t;
float m;
printf("请输入您所需修改的销售员代号:");
scanf("%d",&i);
printf("请输入您想修改的月份:");
scanf("%d",&x);
printf("请输入您想要修改的信息:");
scanf("%lf\n",&m);
for(k=0;k<n;k++)
for(t=0;t<12;t++)
if(i==node[k].no&&x==node[t].month)
{ m=node[k].sales[t];
}
printf("修改成功\n");
printf("销售员代号 姓名 月销售额 年度总销售额\n");
for(t=0;t<12;t++)
printf("%d%s%lf%lf\n",node[k].no,node[k].name,node[k].sales[t],node[k].total);
printf("\n\n");
}
void delete()//删除信息
{
char node_name[20];
int i,j;
printf("请输入您想要删除掉的员工姓名:");
scanf("%s",node_name[i]);
for(i=0;i<n;i++)
if (strcmp(node_name,node[i].name)==0)
{
for(j=i;j<n;j++) node[i]=node[i+1]; n=n-1; }
}
void all()//统计年度总销售额
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<12;j++) node[i].total+=node[i].sales[j];
printf("销售员年度总销售额:\n");
for(i=0;i<n;i++)
printf("%lf\n",node[i].total);
}
void line()//找出最大或最小销售额
{
int i,j;
float max,min;
max=node[0].sales[0];
min=node[0].sales[0];
for(i=0;i<n;i++)
for(j=0;j<12;j++)
if(node[i].sales[j]>max)
{ max=node[i].sales[j]; }
if(node[i].sales[j]<min)
{ min=node[i].sales[j];
}
printf("最大或最小月销售额:\n");
pritnf("%lf,%lf\n",max,min);
} 救救孩子吧
...全文
117 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2020-06-04
  • 打赏
  • 举报
回复
引用 1 楼 棉猴 的回复:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
struct node
{
int no;//销售员工代号
char name[20];//销售员工姓名
int month;//月份
float sales[12];//月销售额
float total;//年度总销售额
}node[200];
int n = 200;

int main()
{
void input();
void insert();
void revise();
void mydelete();
void all();
void line();
int i;
while (1)
{
printf("销售管理系统\n");
printf("0退出销售管理系统\n");
printf("1录入销售员信息\n");
printf("2查找销售员信息\n");
printf("3修改销售员信息\n");
printf("4删除销售员信息\n");
printf("5统计所有销售员的年度总销售额\n");
printf("6找出最大或最小的月销售额和年度总销售额\n");
printf("请选择需要操作的功能\n"); scanf("%d", &i);
switch (i)
{
case 0:
exit(0);
break;
case 1:
printf("录入销售员信息\n");
break;
case 2:
printf("查找销售员信息\n");
break;
case 3:
printf("修改销售员某个月的销售额\n");
break;
case 4:
printf("删除销售员信息\n");
break;
case 5:
printf("统计所有销售员的年度总销售额\n");
break;
case 6:
printf("找出最大或最小的月销售额和年度总销售额\n");
break;
default:
printf("输入错误,请重新选择!!");
break;
}
}
return 0;
}
void input()//录入信息
{
int i, n, j;
printf("请输入销售人员个数\n");
scanf("%d", &n);
for (i = 0; i<n; i++)
{
printf("请输入销售员代号:\n");
scanf("%d", node[i].no);
printf("请输入销售员姓名:\n");
scanf("%s", node[i].name);
printf("请输入销售员的月销售额:\n");
for (j = 0; j<12; j++)
{
scanf("%lf", node[i].sales[j]);
}
printf("请输入销售员的年度总销售额:\n");
scanf("%lf", node[i].total);
}
}
void insert()//查找信息
{
int i, k, m;
printf("请输入您需要查找的销售员代号:");
scanf("%d", &i);
for (k = 0; k<n; k++)
if (i == node[k].no)
printf("销售员代号 姓名 月销售额 年度总销售额:\n");
for (m = 0; m<12; m++)
printf("%d%s%lf%lf\n", node[n].no, node[n].name, node[n].sales[m], node[n].total);
printf("\n\n");
}
void revise(struct node no[], int n)//修改信息
{
int i, x, k, t;
float m;
printf("请输入您所需修改的销售员代号:");
scanf("%d", &i);
printf("请输入您想修改的月份:");
scanf("%d", &x);
printf("请输入您想要修改的信息:");
scanf("%lf\n", &m);
for (k = 0; k<n; k++)
for (t = 0; t<12; t++)
if (i == node[k].no && x == node[t].month)
{
m = node[k].sales[t];
}
printf("修改成功\n");
printf("销售员代号 姓名 月销售额 年度总销售额\n");
for (t = 0; t<12; t++)
printf("%d%s%lf%lf\n", node[k].no, node[k].name, node[k].sales[t], node[k].total);
printf("\n\n");
}
void mydelete()//删除信息
{
char node_name[20];
int i, j;
printf("请输入您想要删除掉的员工姓名:");
scanf("%s", node_name);
for (i = 0; i<n; i++)
if (strcmp(node_name, node[i].name) == 0)
{
for (j = i; j<n; j++) node[i] = node[i + 1]; n = n - 1;
}
}
void all()//统计年度总销售额
{
int i, j;
for (i = 0; i<n; i++)
for (j = 0; j<12; j++) node[i].total += node[i].sales[j];
printf("销售员年度总销售额:\n");
for (i = 0; i<n; i++)
printf("%lf\n", node[i].total);
}
void line()//找出最大或最小销售额
{
int i, j;
float max, min;
max = node[0].sales[0];
min = node[0].sales[0];
for (i = 0; i<n; i++)
for (j = 0; j<12; j++)
if (node[i].sales[j]>max)
{
max = node[i].sales[j];
}
if (node[i].sales[j]<min)
{
min = node[i].sales[j];
}
printf("最大或最小月销售额:\n");
printf("%lf,%lf\n", max, min);
}

VS2015 C++环境调试

没看出逻辑问题吗?
if (i == node[k].no && x == node[t].month)

还有float的格式用%lf?
自信男孩 2020-06-04
  • 打赏
  • 举报
回复
//#include<conio.h>
#include <stdio.h>
#include<string.h>
#include<stdlib.h>

struct node
{
int no[12];//销售员工代号
char name[20];//销售员工姓名
int month[12];//月份
float sales[12];//月销售额
float total;//年度总销售额
}node[200];

int n=200;

//void main()
int main()
{
void input();
void insert();
void revise();
void delete();
void all();
void line();
int i;
while(1)
{
printf("销售管理系统\n");
printf("0退出销售管理系统\n");
printf("1录入销售员信息\n");
printf("2查找销售员信息\n");
printf("3修改销售员信息\n");
printf("4删除销售员信息\n");
printf("5统计所有销售员的年度总销售额\n");
printf("6找出最大或最小的月销售额和年度总销售额\n");
printf("请选择需要操作的功能\n");
scanf("%d",&i);
switch(i) {
case 0:
exit(0);
break;

case 1:
printf("录入销售员信息\n");
break;

case 2:
printf("查找销售员信息\n");
break;

case 3:
printf("修改销售员某个月的销售额\n");
break;

case 4:
printf("删除销售员信息\n");
break;

case 5:
printf("统计所有销售员的年度总销售额\n");
break;

case 6:
printf("找出最大或最小的月销售额和年度总销售额\n");
break;

default:
printf("输入错误,请重新选择!!");
break;
}
}
}

void input()//录入信息
{
int i,n,j;
printf("请输入销售人员个数\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("请输入销售员代号:\n");
scanf("%d",node[i].no);
printf("请输入销售员姓名:\n");
scanf("%s",node[i].name);
printf("请输入销售员的月销售额:\n");
for(j=0;j<12;j++)
{
//scanf("%lf", node[i].sales[j]);
scanf("%f", &node[i].sales[j]);
}
printf("请输入销售员的年度总销售额:\n");
//scanf("%lf",node[i].total); }
scanf("%f", &node[i].total);
}
}

void insert()//查找信息
{
int i,k,m;

printf("请输入您需要查找的销售员代号:");
scanf("%d",&i);
for(k=0;k<n;k++)
if(i==node[k].no)
printf("销售员代号 姓名 月销售额 年度总销售额:\n");
for(m=0;m<12;m++)
printf("%d%s%lf%lf\n", node[n].no, node[n].name,node[n].sales[m],node[n].total);
printf("\n\n");
}
void revise(struct node no[],int n)//修改信息
{
int i,x,k,t;
float m;
printf("请输入您所需修改的销售员代号:");
scanf("%d",&i);
printf("请输入您想修改的月份:");
scanf("%d",&x);
printf("请输入您想要修改的信息:");
scanf("%lf\n",&m);
for(k=0;k<n;k++)
for(t=0;t<12;t++)
if(i==node[k].no&&x==node[t].month)
{ m=node[k].sales[t];
}
printf("修改成功\n");
printf("销售员代号 姓名 月销售额 年度总销售额\n");
for(t=0;t<12;t++)
printf("%d%s%lf%lf\n",node[k].no,node[k].name,node[k].sales[t],node[k].total);
printf("\n\n");
}
void delete_node()//删除信息
{
char node_name[20];
int i,j;

printf("请输入您想要删除掉的员工姓名:");
//scanf("%s",node_name[i]);
scanf("%s",node_name);
for(i=0;i<n;i++)
if (strcmp(node_name,node[i].name)==0)
{
for(j=i;j<n;j++) node[i]=node[i+1]; n=n-1;
}
}
void all()//统计年度总销售额
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<12;j++) node[i].total+=node[i].sales[j];
printf("销售员年度总销售额:\n");
for(i=0;i<n;i++)
//printf("%lf\n",node[i].total);
printf("%f\n",node[i].total);
}
void line()//找出最大或最小销售额
{
int i,j;
float max,min;
max=node[0].sales[0];
min=node[0].sales[0];
for(i=0;i<n;i++)
for(j=0;j<12;j++)
if(node[i].sales[j]>max)
{ max=node[i].sales[j]; }
if(node[i].sales[j]<min)
{
min=node[i].sales[j];
}
printf("最大或最小月销售额:\n");
//pritnf("%lf,%lf\n",max,min);
//printf("%lf,%lf\n",max,min);
printf("%f,%f\n",max,min);
}

楼主的问题很多呢,问一下no你是打算定义成char []类型还是定义成int还是int []?
同样的问题是month。
因为下面涉及到比较如果按照目前你的定义,如下的比较不成立的:
if(i==node[k].no&&x==node[t].month)

还有,楼主float对应的格式是%f,不是%lf。

建议先把这些问题一一确认和解决了,再一个函数一个函数的或者递增式(函数个数递增)的去调试。
棉猴 2020-06-04
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
struct node
{
	int no;//销售员工代号
	char name[20];//销售员工姓名 
	int month;//月份 
	float sales[12];//月销售额 
	float total;//年度总销售额 
}node[200];
int n = 200;

int main()
{	
	void input();
	void insert();
	void revise();
	void mydelete();
	void all();
	void line();
	int i;
	while (1)
	{
		printf("销售管理系统\n"); 
		printf("0退出销售管理系统\n");
		printf("1录入销售员信息\n");
		printf("2查找销售员信息\n");
		printf("3修改销售员信息\n");
		printf("4删除销售员信息\n"); 
		printf("5统计所有销售员的年度总销售额\n");
		printf("6找出最大或最小的月销售额和年度总销售额\n"); 
		printf("请选择需要操作的功能\n"); scanf("%d", &i);
		switch (i) 
		{ 
		case 0: 
			exit(0); 
			break; 
		case 1: 
			printf("录入销售员信息\n");
			break; 
		case 2: 
			printf("查找销售员信息\n"); 
			break; 
		case 3: 
			printf("修改销售员某个月的销售额\n");
			break; 
		case 4: 
			printf("删除销售员信息\n"); 
			break;
		case 5: 
			printf("统计所有销售员的年度总销售额\n");
			break; 
		case 6: 
			printf("找出最大或最小的月销售额和年度总销售额\n"); 
			break;
		default:
			printf("输入错误,请重新选择!!"); 
			break; 
		}
	}
	return 0;
}
void input()//录入信息 
{
	int i, n, j;
	printf("请输入销售人员个数\n");
	scanf("%d", &n);
	for (i = 0; i<n; i++)
	{
		printf("请输入销售员代号:\n");
		scanf("%d", node[i].no);
		printf("请输入销售员姓名:\n");
		scanf("%s", node[i].name);
		printf("请输入销售员的月销售额:\n");
		for (j = 0; j<12; j++)
		{
			scanf("%lf", node[i].sales[j]);
		}
		printf("请输入销售员的年度总销售额:\n");
		scanf("%lf", node[i].total);
	}
}
void insert()//查找信息 
{
	int i, k, m;
	printf("请输入您需要查找的销售员代号:");
	scanf("%d", &i); 
	for (k = 0; k<n; k++) 
		if (i == node[k].no) 
			printf("销售员代号 姓名 月销售额 年度总销售额:\n");
	for (m = 0; m<12; m++)
		printf("%d%s%lf%lf\n", node[n].no, node[n].name, node[n].sales[m], node[n].total);
	printf("\n\n");
}
void revise(struct node no[], int n)//修改信息 
{
	int i, x, k, t;
	float m;
	printf("请输入您所需修改的销售员代号:");
	scanf("%d", &i);
	printf("请输入您想修改的月份:");
	scanf("%d", &x);
	printf("请输入您想要修改的信息:");
	scanf("%lf\n", &m);
	for (k = 0; k<n; k++)
		for (t = 0; t<12; t++)
			if (i == node[k].no && x == node[t].month)
			{
				m = node[k].sales[t];
			}
	printf("修改成功\n");
	printf("销售员代号 姓名 月销售额 年度总销售额\n");
	for (t = 0; t<12; t++)
		printf("%d%s%lf%lf\n", node[k].no, node[k].name, node[k].sales[t], node[k].total);
	printf("\n\n");
}
void mydelete()//删除信息 
{
	char node_name[20];
	int i, j;
	printf("请输入您想要删除掉的员工姓名:");
	scanf("%s", node_name);
	for (i = 0; i<n; i++)
		if (strcmp(node_name, node[i].name) == 0)
		{
			for (j = i; j<n; j++) node[i] = node[i + 1]; n = n - 1;
		}
}
void all()//统计年度总销售额 
{
	int i, j;
	for (i = 0; i<n; i++)
		for (j = 0; j<12; j++) node[i].total += node[i].sales[j];
	printf("销售员年度总销售额:\n");
	for (i = 0; i<n; i++)
		printf("%lf\n", node[i].total);
}
void line()//找出最大或最小销售额 
{
	int i, j;
	float max, min;
	max = node[0].sales[0];
	min = node[0].sales[0];
	for (i = 0; i<n; i++)
		for (j = 0; j<12; j++)
			if (node[i].sales[j]>max)
			{
				max = node[i].sales[j];
			}
	if (node[i].sales[j]<min)
	{
		min = node[i].sales[j];
	}
	printf("最大或最小月销售额:\n");
	printf("%lf,%lf\n", max, min);
}
VS2015 C++环境调试
自信男孩 2020-06-04
  • 打赏
  • 举报
回复
引用 5 楼 我就菜哼 的回复:
[quote=引用 1 楼 棉猴 的回复:]
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
struct node
{
int no;//销售员工代号
char name[20];//销售员工姓名
int month;//月份
float sales[12];//月销售额
float total;//年度总销售额
}node[200];
int n = 200;

int main()
{
void input();
void insert();
void revise();
void mydelete();
void all();
void line();
int i;
while (1)
{
printf("销售管理系统\n");
printf("0退出销售管理系统\n");
printf("1录入销售员信息\n");
printf("2查找销售员信息\n");
printf("3修改销售员信息\n");
printf("4删除销售员信息\n");
printf("5统计所有销售员的年度总销售额\n");
printf("6找出最大或最小的月销售额和年度总销售额\n");
printf("请选择需要操作的功能\n"); scanf("%d", &i);
switch (i)
{
case 0:
exit(0);
break;
case 1:
printf("录入销售员信息\n");
break;
case 2:
printf("查找销售员信息\n");
break;
case 3:
printf("修改销售员某个月的销售额\n");
break;
case 4:
printf("删除销售员信息\n");
break;
case 5:
printf("统计所有销售员的年度总销售额\n");
break;
case 6:
printf("找出最大或最小的月销售额和年度总销售额\n");
break;
default:
printf("输入错误,请重新选择!!");
break;
}
}
return 0;
}
void input()//录入信息
{
int i, n, j;
printf("请输入销售人员个数\n");
scanf("%d", &n);
for (i = 0; i<n; i++)
{
printf("请输入销售员代号:\n");
scanf("%d", node[i].no);
printf("请输入销售员姓名:\n");
scanf("%s", node[i].name);
printf("请输入销售员的月销售额:\n");
for (j = 0; j<12; j++)
{
scanf("%lf", node[i].sales[j]);
}
printf("请输入销售员的年度总销售额:\n");
scanf("%lf", node[i].total);
}
}
void insert()//查找信息
{
int i, k, m;
printf("请输入您需要查找的销售员代号:");
scanf("%d", &i);
for (k = 0; k<n; k++)
if (i == node[k].no)
printf("销售员代号 姓名 月销售额 年度总销售额:\n");
for (m = 0; m<12; m++)
printf("%d%s%lf%lf\n", node[n].no, node[n].name, node[n].sales[m], node[n].total);
printf("\n\n");
}
void revise(struct node no[], int n)//修改信息
{
int i, x, k, t;
float m;
printf("请输入您所需修改的销售员代号:");
scanf("%d", &i);
printf("请输入您想修改的月份:");
scanf("%d", &x);
printf("请输入您想要修改的信息:");
scanf("%lf\n", &m);
for (k = 0; k<n; k++)
for (t = 0; t<12; t++)
if (i == node[k].no && x == node[t].month)
{
m = node[k].sales[t];
}
printf("修改成功\n");
printf("销售员代号 姓名 月销售额 年度总销售额\n");
for (t = 0; t<12; t++)
printf("%d%s%lf%lf\n", node[k].no, node[k].name, node[k].sales[t], node[k].total);
printf("\n\n");
}
void mydelete()//删除信息
{
char node_name[20];
int i, j;
printf("请输入您想要删除掉的员工姓名:");
scanf("%s", node_name);
for (i = 0; i<n; i++)
if (strcmp(node_name, node[i].name) == 0)
{
for (j = i; j<n; j++) node[i] = node[i + 1]; n = n - 1;
}
}
void all()//统计年度总销售额
{
int i, j;
for (i = 0; i<n; i++)
for (j = 0; j<12; j++) node[i].total += node[i].sales[j];
printf("销售员年度总销售额:\n");
for (i = 0; i<n; i++)
printf("%lf\n", node[i].total);
}
void line()//找出最大或最小销售额
{
int i, j;
float max, min;
max = node[0].sales[0];
min = node[0].sales[0];
for (i = 0; i<n; i++)
for (j = 0; j<12; j++)
if (node[i].sales[j]>max)
{
max = node[i].sales[j];
}
if (node[i].sales[j]<min)
{
min = node[i].sales[j];
}
printf("最大或最小月销售额:\n");
printf("%lf,%lf\n", max, min);
}

VS2015 C++环境调试
谢谢大佬呀,虽然可以运行了但还是有一点问题,我再研究研究,到时候有不会的可以来问你吗[/quote]
你的main函数里调用那个自定义函数接口了?没有调用怎么知道可以运行
  • 打赏
  • 举报
回复
引用 1 楼 棉猴 的回复:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
struct node
{
	int no;//销售员工代号
	char name[20];//销售员工姓名 
	int month;//月份 
	float sales[12];//月销售额 
	float total;//年度总销售额 
}node[200];
int n = 200;

int main()
{	
	void input();
	void insert();
	void revise();
	void mydelete();
	void all();
	void line();
	int i;
	while (1)
	{
		printf("销售管理系统\n"); 
		printf("0退出销售管理系统\n");
		printf("1录入销售员信息\n");
		printf("2查找销售员信息\n");
		printf("3修改销售员信息\n");
		printf("4删除销售员信息\n"); 
		printf("5统计所有销售员的年度总销售额\n");
		printf("6找出最大或最小的月销售额和年度总销售额\n"); 
		printf("请选择需要操作的功能\n"); scanf("%d", &i);
		switch (i) 
		{ 
		case 0: 
			exit(0); 
			break; 
		case 1: 
			printf("录入销售员信息\n");
			break; 
		case 2: 
			printf("查找销售员信息\n"); 
			break; 
		case 3: 
			printf("修改销售员某个月的销售额\n");
			break; 
		case 4: 
			printf("删除销售员信息\n"); 
			break;
		case 5: 
			printf("统计所有销售员的年度总销售额\n");
			break; 
		case 6: 
			printf("找出最大或最小的月销售额和年度总销售额\n"); 
			break;
		default:
			printf("输入错误,请重新选择!!"); 
			break; 
		}
	}
	return 0;
}
void input()//录入信息 
{
	int i, n, j;
	printf("请输入销售人员个数\n");
	scanf("%d", &n);
	for (i = 0; i<n; i++)
	{
		printf("请输入销售员代号:\n");
		scanf("%d", node[i].no);
		printf("请输入销售员姓名:\n");
		scanf("%s", node[i].name);
		printf("请输入销售员的月销售额:\n");
		for (j = 0; j<12; j++)
		{
			scanf("%lf", node[i].sales[j]);
		}
		printf("请输入销售员的年度总销售额:\n");
		scanf("%lf", node[i].total);
	}
}
void insert()//查找信息 
{
	int i, k, m;
	printf("请输入您需要查找的销售员代号:");
	scanf("%d", &i); 
	for (k = 0; k<n; k++) 
		if (i == node[k].no) 
			printf("销售员代号 姓名 月销售额 年度总销售额:\n");
	for (m = 0; m<12; m++)
		printf("%d%s%lf%lf\n", node[n].no, node[n].name, node[n].sales[m], node[n].total);
	printf("\n\n");
}
void revise(struct node no[], int n)//修改信息 
{
	int i, x, k, t;
	float m;
	printf("请输入您所需修改的销售员代号:");
	scanf("%d", &i);
	printf("请输入您想修改的月份:");
	scanf("%d", &x);
	printf("请输入您想要修改的信息:");
	scanf("%lf\n", &m);
	for (k = 0; k<n; k++)
		for (t = 0; t<12; t++)
			if (i == node[k].no && x == node[t].month)
			{
				m = node[k].sales[t];
			}
	printf("修改成功\n");
	printf("销售员代号 姓名 月销售额 年度总销售额\n");
	for (t = 0; t<12; t++)
		printf("%d%s%lf%lf\n", node[k].no, node[k].name, node[k].sales[t], node[k].total);
	printf("\n\n");
}
void mydelete()//删除信息 
{
	char node_name[20];
	int i, j;
	printf("请输入您想要删除掉的员工姓名:");
	scanf("%s", node_name);
	for (i = 0; i<n; i++)
		if (strcmp(node_name, node[i].name) == 0)
		{
			for (j = i; j<n; j++) node[i] = node[i + 1]; n = n - 1;
		}
}
void all()//统计年度总销售额 
{
	int i, j;
	for (i = 0; i<n; i++)
		for (j = 0; j<12; j++) node[i].total += node[i].sales[j];
	printf("销售员年度总销售额:\n");
	for (i = 0; i<n; i++)
		printf("%lf\n", node[i].total);
}
void line()//找出最大或最小销售额 
{
	int i, j;
	float max, min;
	max = node[0].sales[0];
	min = node[0].sales[0];
	for (i = 0; i<n; i++)
		for (j = 0; j<12; j++)
			if (node[i].sales[j]>max)
			{
				max = node[i].sales[j];
			}
	if (node[i].sales[j]<min)
	{
		min = node[i].sales[j];
	}
	printf("最大或最小月销售额:\n");
	printf("%lf,%lf\n", max, min);
}
VS2015 C++环境调试
谢谢大佬呀,虽然可以运行了但还是有一点问题,我再研究研究,到时候有不会的可以来问你吗
  • 打赏
  • 举报
回复
引用 2 楼 自信男孩 的回复:
//#include<conio.h>
#include <stdio.h>
#include<string.h>
#include<stdlib.h>

struct node
{
int no[12];//销售员工代号
char name[20];//销售员工姓名
int month[12];//月份
float sales[12];//月销售额
float total;//年度总销售额
}node[200];

int n=200;

//void main()
int main()
{
void input();
void insert();
void revise();
void delete();
void all();
void line();
int i;
while(1)
{
printf("销售管理系统\n");
printf("0退出销售管理系统\n");
printf("1录入销售员信息\n");
printf("2查找销售员信息\n");
printf("3修改销售员信息\n");
printf("4删除销售员信息\n");
printf("5统计所有销售员的年度总销售额\n");
printf("6找出最大或最小的月销售额和年度总销售额\n");
printf("请选择需要操作的功能\n");
scanf("%d",&i);
switch(i) {
case 0:
exit(0);
break;

case 1:
printf("录入销售员信息\n");
break;

case 2:
printf("查找销售员信息\n");
break;

case 3:
printf("修改销售员某个月的销售额\n");
break;

case 4:
printf("删除销售员信息\n");
break;

case 5:
printf("统计所有销售员的年度总销售额\n");
break;

case 6:
printf("找出最大或最小的月销售额和年度总销售额\n");
break;

default:
printf("输入错误,请重新选择!!");
break;
}
}
}

void input()//录入信息
{
int i,n,j;
printf("请输入销售人员个数\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("请输入销售员代号:\n");
scanf("%d",node[i].no);
printf("请输入销售员姓名:\n");
scanf("%s",node[i].name);
printf("请输入销售员的月销售额:\n");
for(j=0;j<12;j++)
{
//scanf("%lf", node[i].sales[j]);
scanf("%f", &node[i].sales[j]);
}
printf("请输入销售员的年度总销售额:\n");
//scanf("%lf",node[i].total); }
scanf("%f", &node[i].total);
}
}

void insert()//查找信息
{
int i,k,m;

printf("请输入您需要查找的销售员代号:");
scanf("%d",&i);
for(k=0;k<n;k++)
if(i==node[k].no)
printf("销售员代号 姓名 月销售额 年度总销售额:\n");
for(m=0;m<12;m++)
printf("%d%s%lf%lf\n", node[n].no, node[n].name,node[n].sales[m],node[n].total);
printf("\n\n");
}
void revise(struct node no[],int n)//修改信息
{
int i,x,k,t;
float m;
printf("请输入您所需修改的销售员代号:");
scanf("%d",&i);
printf("请输入您想修改的月份:");
scanf("%d",&x);
printf("请输入您想要修改的信息:");
scanf("%lf\n",&m);
for(k=0;k<n;k++)
for(t=0;t<12;t++)
if(i==node[k].no&&x==node[t].month)
{ m=node[k].sales[t];
}
printf("修改成功\n");
printf("销售员代号 姓名 月销售额 年度总销售额\n");
for(t=0;t<12;t++)
printf("%d%s%lf%lf\n",node[k].no,node[k].name,node[k].sales[t],node[k].total);
printf("\n\n");
}
void delete_node()//删除信息
{
char node_name[20];
int i,j;

printf("请输入您想要删除掉的员工姓名:");
//scanf("%s",node_name[i]);
scanf("%s",node_name);
for(i=0;i<n;i++)
if (strcmp(node_name,node[i].name)==0)
{
for(j=i;j<n;j++) node[i]=node[i+1]; n=n-1;
}
}
void all()//统计年度总销售额
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<12;j++) node[i].total+=node[i].sales[j];
printf("销售员年度总销售额:\n");
for(i=0;i<n;i++)
//printf("%lf\n",node[i].total);
printf("%f\n",node[i].total);
}
void line()//找出最大或最小销售额
{
int i,j;
float max,min;
max=node[0].sales[0];
min=node[0].sales[0];
for(i=0;i<n;i++)
for(j=0;j<12;j++)
if(node[i].sales[j]>max)
{ max=node[i].sales[j]; }
if(node[i].sales[j]<min)
{
min=node[i].sales[j];
}
printf("最大或最小月销售额:\n");
//pritnf("%lf,%lf\n",max,min);
//printf("%lf,%lf\n",max,min);
printf("%f,%f\n",max,min);
}

楼主的问题很多呢,问一下no你是打算定义成char []类型还是定义成int还是int []?
同样的问题是month。
因为下面涉及到比较如果按照目前你的定义,如下的比较不成立的:
if(i==node[k].no&&x==node[t].month)

还有,楼主float对应的格式是%f,不是%lf。

建议先把这些问题一一确认和解决了,再一个函数一个函数的或者递增式(函数个数递增)的去调试。
好的,非常感谢

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧