我刚接触c语言,不知道程序除了什么问题,求助···鼓捣了一天了,心力憔悴。
#include "stdio.h"#define N 100
#include "string.h"
#include "stdlib.h"
#include "conio.h"
typedef struct xingxi
{
int num[20];
char name[20];
int money[100];(这里如我想输入几千的数,应该怎么处理呢?)
}XX;
void menu() /*菜单函数*/
{
printf(" ************欢迎进入管理员管理系统**********\n");
printf(" 1.录入手机信息(用于空文件)");
printf(" 2.删除手机信息\n");
printf(" ************欢迎进入管理员管理系统**********\n");
printf("\n");
printf("\n");
}
void shuru(XX a[]) /*录入函数*/
{ FILE*fp;
int i,m;
printf("请输入需要录入的手机信息数量:\n");
scanf("%d",&m);
for (i=0;i<m;i++)
{
printf("请输入手机编号: ");
scanf("%d",a[i].num);
printf("请输入手机名称名称: ");
scanf("%s",a[i].name);
printf("请输入手机价格: ");
scanf("%d",a[i].money);
printf("\n");
}
printf("\n创建完毕!\n");
fp=fopen("手机信息.txt","a+");
for(i=0;i<m;i++)
{
fputs("\n",fp);
fprintf(fp,"%d\t",a[i].num);
fprintf(fp,"%s\t",a[i].name);
fprintf(fp,"%d\t",a[i].money);
}
fclose(fp);
}
void sancu(XX a[]) /*删除函数*/
{
int i,j,n,m=0,t,flag;
char name[100];
FILE*fp;
while(feof(fp)==0);
{
fscanf(fp,"%d",a[i].num);
fscanf(fp,"%s",a[i].name);
fscanf(fp,"%d",a[i].money);
m++;
}
fclose(fp);
printf("手机编号\t手机名字\t手机价格\n");
for(i=0;i<m;i++)
{
printf("%d\t\t",a[i].num);
printf("%s\t\t",a[i].name);
printf("%d\t\t",a[i].money);
}
printf("\n");
printf("请输入要删除的快件名称:\n");
scanf("%s",name);
for(flag=1,i=0;i<m;i++)
{
if(strcmp(a[i].name,name)==0)
{
printf("\n已找到此快件,原始记录为:\n");
printf("手机编号\t手机名字\t手机价格\n");
printf("%d\t\t",a[i].num);
printf("%s\t\t",a[i].name);
printf("%d\t\t",a[i].money);
printf("\n确实要删除此快件信息请按1,不删除请按0\n");
scanf("%d",&n);
if(n==1)
{
for(j=i;j<m-1;j++)
{
strcpy(a[i].num,a[j+1].num);
strcpy(a[i].name,a[j+1].name);
strcpy(a[i].money,a[j+1].money);
}
flag=0;
}
}
}
if(!flag)
m=m-1;
else
printf("\n对不起,查无此人!\n");
printf("\n 浏览删除后的所有快件信息:\n");
fp=fopen("手机信息.txt","w+");
for(i=0;i<m;i++)
{
fputs("\n",fp);
fprintf(fp,"%d\t",a[i].num);
fprintf(fp,"%s\t",a[i].name);
fprintf(fp,"%d\t",a[i].money);
}
for(i=0;i<m;i++)
{
printf("%d\t\t",a[i].num);
printf("%s\t\t",a[i].name);
printf("%d\t\t",a[i].money);
}
printf("\n继续删除请按1,不再删除请按0\n");
scanf("%d",&t);
switch(t)
{
case 1:sancu(a);break;
case 0:
break;
default :
break;
}
}
void main()
{
XX a[N];
int n;
menu();
printf("请选择要进入的模块\n");
scanf("%d",&n);
switch(n)
{
case 1:shuru(a);
break;
case 2:sancu(a);
break;
}
}
进入删除子函数的时候,程序就出错结束了······
[ 本帖最后由 cYY菜鸟 于 2013-1-6 18:55 编辑 ]