文章目录
一、数组操作—数字类型涉及知识:myTest02.ctest02.txt
一、数组操作—数字类型
涉及知识:
1、文件io流
2、指针
myTest02.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 200
int readFile(int nums
[], int size
, char *filePath
);
void opration(int nums
[], int *count
);
void showData(int nums
[], int *count
);
void findData(int nums
[], int *count
);
void insertData(int nums
[], int *count
);
void delData(int nums
[], int *count
);
void getData(int nums
[], int *count
);
int get(int nums
[], int pos
);
int main()
{
int count
;
int nums
[SIZE
];
count
= readFile(nums
, SIZE
, "test02.txt");
if (count
!= -1)
{
_flushall();
opration(nums
, &count
);
}
return 0;
}
int readFile(int nums
[], int size
, char *filePath
)
{
int count
= 0;
char buf
[1024];
FILE
*fp
= fopen(filePath
, "r");
if (fp
== NULL)
{
printf("文件打开失败");
return -1;
}
while (!feof(fp
) && count
<= size
)
{
fgets(buf
, 1024, fp
);
nums
[count
] = atoi(buf
);
count
++;
}
if (count
== size
&& !feof(fp
))
{
printf("数组容器最大承载 %d 个数字", size
);
return -1;
}
fclose(fp
);
return count
;
}
void opration(int nums
[], int *count
)
{
_flushall();
char op
;
printf("操作说明:\n1:显示数据\n2:查找数据\n3:插入数据\n4:删除数据\n5:获取数据\n0:退出\n");
while (1)
{
printf("请输入您的操作:");
_flushall();
op
= getchar();
if (op
== '0' || op
== '1' || op
== '2' || op
== '3' || op
== '4' || op
== '5')
{
if (op
== '0')
{
printf("退出成功\n");
return;
}
break;
}
else
{
printf("您的输入有误\n");
}
}
while (op
!= '0')
{
switch (op
)
{
case '1':
showData(nums
, count
);
break;
case '2':
findData(nums
, count
);
break;
case '3':
insertData(nums
, count
);
break;
case '4':
delData(nums
, count
);
break;
case '5':
getData(nums
, count
);
break;
default:
printf("请输入合法字符\n");
break;
}
printf("请继续您的操作:");
_flushall();
op
= getchar();
if (op
== '0')
{
printf("退出成功\n");
}
}
}
void showData(int nums
[], int *count
)
{
int j
= 0;
while (j
< *count
)
{
printf("%d : %d\n", j
+ 1, nums
[j
]);
j
++;
}
}
void findData(int nums
[], int *count
)
{
int value
;
int i
= 0;
printf("请输入您要查找的内容:");
scanf("%d", &value
);
while (i
< *count
)
{
if (value
== nums
[i
])
{
printf("查找成功,位置:%d 内容:%d\n", i
+ 1, nums
[i
]);
return;
}
i
++;
}
printf("查找失败:没有此内容\n");
}
void insertData(int nums
[], int *count
)
{
int pos
;
int value
;
int j
;
printf("请输入您将要插入的数据:");
scanf("%d", &value
);
printf("请输入您要插入的位置:");
scanf("%d", &pos
);
while (1)
{
if (*count
== SIZE
)
{
printf("容器已满,无法插入\n");
return;
}
else if (pos
< 1 || pos
>= *count
+ 2)
{
printf("插入的位置不合理,请重新输入位置:");
scanf("%d", &pos
);
}
else
{
break;
}
}
j
= *count
;
while (j
>= pos
)
{
nums
[j
] = nums
[j
- 1];
j
--;
}
nums
[pos
- 1] = value
;
(*count
)++;
printf("插入成功\n");
}
void delData(int nums
[], int *count
)
{
int pos
;
int j
;
printf("请输入删除的位置:");
scanf("%d", &pos
);
while (1)
{
if ((pos
< 1 || pos
> *count
))
{
printf("删除的位置不存在,请重新输入:");
scanf("%d", &pos
);
}
else
{
break;
}
}
j
= pos
;
while (j
<= *count
)
{
nums
[j
- 1] = nums
[j
];
j
++;
}
printf("删除成功\n");
(*count
)--;
}
void getData(int nums
[], int *count
)
{
int value
;
int pos
;
printf("请输入要获取元素的位置:");
scanf("%d", &pos
);
while (1)
{
if (pos
< 1 || pos
> *count
)
{
printf("输入不合理,请重新输入:");
scanf("%d", &pos
);
}
else
{
break;
}
}
value
= get(nums
, pos
);
printf("查找成功,值为:%d\n", value
);
}
int get(int nums
[], int pos
)
{
return nums
[pos
- 1];
}
test02.txt
11
22
33
44
55
66
77
88
99
100
转载请注明原文地址:https://blackberry.8miu.com/read-17544.html