C语言的这个怎么做?

关于数组、函数的小程序,用于进行数组的增、删、改、查还可以添加排序等功能。我还没学指针,大佬帮我看看吧!#include<stdio.h>#include<stdlib.... 关于数组、函数的小程序,用于进行数组的增、删、改、查还可以添加排序等功能。
我还没学指针,大佬帮我看看吧!
#include<stdio.h>
#include<stdlib.h>
#define NUM 5
void save(int *p,int n)
{
FILE *fp;
if((fp=fopen("f:\\ab.txt","wb+"))==NULL)
{printf("cannot open file ");
exit(0);
}
int t=fwrite(p,sizeof(int),n,fp);
printf("t=%d",t);
fclose(fp);
}
void read(int *p,int n){
FILE *fp;
if((fp=fopen("f:\\ab.txt","rb"))==NULL)
{printf("cannot open file ");
exit(0);
}
int t=fread(p,sizeof(int),5,fp);
for(int i=0;i<=n-1;i++){
printf("p[i]=%d",p[i]);
}
fclose(fp);
}
void menu(){
printf("\n\t\t\t\twelcome to the data world!\n");
printf("\n");
printf("\t\t\t1、向数组插入数值 2、删除数组的值\n");
printf("\n");
printf("\t\t\t3、查找数组元素 4、修改数组的值\n");
printf("\n");
printf("\t\t\t5、退出\n");
printf("\n");
}

void output(int *p,int num){
int i;
for(i=0;i<=num-1;i++){
printf("%4d",p[i]);
}
}
void scan(int *p,int num){
int i;
printf("请给数组赋值:%d个\n",num);
for(i=0;i<=num-1;i++){
scanf("%d",&p[i]);
}
}

int main()
{
int select,flag,loc,x;
int a[NUM];
scan("%d",&a[NUM] );//通过键盘给数组赋值
read(a,NUM);//通过文件读入数值
output(a,NUM);//请打印数组
for(;;){
menu();
printf("请输入选项1-5进行选择:\n");
scanf("%d",&select);
switch(select)
{
case 1:while(1){
printf("请输入待插入一个位置:\n");
scanf("%d",&loc);
if(checkLoc(1,loc)){//checkLoc函数用来检测插入或删除位置的检测,比如位置不能小于0
break;
}}
printf("请输入一个待插入的数:\n");
scanf("%d",&x);
flag=insert(a,NUM,loc,x);
output(a,NUM);//请在a数组中的loc位置插入一个值x,成功返回1,不成功返回0
break;
case 2:while(1){
printf("请输入待删除一个位置:\n");
scanf("%d",&loc);
checkLoc(2,loc);}
flag=delete(a,loc,NUM);//请在a数组的loc位置删除一个数,成功返回1,不成功返回0
break;
case 3:index=find(a,x,NUM);//请在a数组中查找x,成功返回x所在的下标,不成功返回-1
break;
case 4:update(a,loc,x,NUM);//
break;
case 5:exit(0);
default :printf("输入有误,请重新输入");
}

}
save(a,NUM);

}
展开
 我来答
云南新华电脑学校
2020-12-12 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
展开全部
您好,对于你的遇到的问题,我很高兴能为你提供帮助,我之前也遇到过哟,以下是我的个人看法,希望能帮助到你,若有错误,还望见谅!。展开全部
#include<stdio.h>
int main()
{
int max=0,min=0,aver=0;
int a[11];
int *p=a;//定义指针变量p,并指向数组a的首地址
for(;p<a+10;p++)
scanf("%d",p);//利用指针偏移,向数组中输入10个整型数据
max=min=a[0];
for(p=a;p<a+10;p++)
if(*p>max)
max=*p;//记录最大值
else if(*p<min)
min=*p;//记录最小值
for(p=a;p<a+1;p++)
aver+=*p;//累加求和
aver/=10;//除以10求平均数 非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式