#include
#include
#include
#define N 50
struct Goods
{
int id;//产品编号
int kudan;//单号
int kudan2;
char name;//名称
int num;//数量
float cost;//成本
float price;//售价
}goods[50],cx[20];
void search();
void menu();
int main(){
while(1) menu();
system("pause");
return 0;}
int S=0;//产品种类
void search()
{
int i,item,flag,n=0;
printf("------------------\n");
printf("-----1.按查询-----\n");
printf("-----2.按查询-----\n");
printf("-----3.退出菜单-----\n");
printf("------------------\n");
while(1) {
printf("请选择子菜单编号:");
scanf("%d",&item);
flag=0;
switch(item) {
case 1:
printf("请输入要查询的学生的学号:\n");
scanf("%s",cx[i].kudan);
for(i=0; iif(strcmp(goods[i].kudan,cx[i].kudan)==0) { /*strcmp是比较函数*/
flag=1;
printf("---------------------------------------------------------------------------\n");
printf("%6s\n",goods[i].id);
}
if(0==flag) printf("该学号不存在!\n");
break;
case 2:
return;
default:
printf("请在1-3之间选择\n");
printf("请在1-3之间选择\n"); }
}
}
void menu(){ /* 界面*/
int um;
printf("请选择菜单编号:");
scanf("%d",&um);
switch(um) {
case 1:
search();
break;
default:
printf("请在1-8之间选择\n");
}
}
scanf("%s",cx[i].kudan);
kudan是整形,不能用 %s输入
改为
scanf("%d",&cx[i].kudan);
===========
if(strcmp(goods[i].kudan,cx[i].kudan)==0)
kudan是整形啊,直接if(goods[i].kudan == cx[i].kudan)就好了
==============
printf("%6s\n",goods[i].id);这也不对,id是整形,用%6d
这个是因为你参数有问题
你的 kudan 明明是 int 类型的,下面你却全部都当字符串来使用,strcmp是比较字符串的函数,不是比较数字的函数
修改该后如下 :
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 50
struct Goods {
int id;//产品编号
int kudan;//单号
int kudan2;
char name;//名称
int num;//数量
float cost;//成本
float price;//售价
} goods[50], cx[20];
void search();
void menu();
int main() {
while (1) menu();
system("pause");
return 0;
}
int S = 0; //产品种类
void search() {
int i, item, flag, n = 0;
printf("------------------\n");
printf("-----1.按查询-----\n");
printf("-----2.按查询-----\n");
printf("-----3.退出菜单-----\n");
printf("------------------\n");
while (1) {
printf("请选择子菜单编号:");
scanf("%d", &item);
flag = 0;
switch (item) {
case 1:
printf("请输入要查询的学生的学号:\n");
scanf("%d", &cx[i].kudan);
for (i = 0; i < n; i++)
if ( goods[i].kudan == cx[i].kudan ) { /*strcmp是比较函数*/
flag = 1;
printf("---------------------------------------------------------------------------\n");
printf("%6d\n", goods[i].id);
}
if (0 == flag) printf("该学号不存在!\n");
break;
case 2:
return;
default:
printf("请在1-3之间选择\n");
printf("请在1-3之间选择\n");
}
}
}
void menu() { /* 界面*/
int um;
printf("请选择菜单编号:");
scanf("%d", &um);
switch (um) {
case 1:
search();
break;
default:
printf("请在1-8之间选择\n");
}
}