从数组中删除指定的值
2015-07-11 11:56
218 查看
#include <stdio.h>
int main(int argc, const char * argv[]) {
int a[100];
int i, n = 0,b , c = 0 ,j;
printf("输入数组的大小:\n");
scanf("%d",&n);
for (i = 0; i < n; i++) {
scanf("%d",&a[i]);
}
printf("输入一个指定的值:\n");
scanf("%d",&b);
for (i = 0; i < n; i++) {//找到指定值的坐标
if (a[i] == b) {
c = i;//返回到c
}
}
for (j = c; j < n-1 ; j++) {//这个必须要减一,因为长度为n,下标只能取到倒数第一位,而j只能取到倒数第二位,因为下句还有j+1,如果n不减一的话,那么j+1就不是最后一位了,就会出现下标越界的错误
a[j] = a[j+1];
}
n --;//数组的长度减一,如果不减一则会出现最后的值出现两次的现象,达不到要的效果
printf("删除后的数组是:\n");
for (i = 0; i < n; i++) {
printf("%d\t",a[i]);
}
return 0;
}
int main(int argc, const char * argv[]) {
int a[100];
int i, n = 0,b , c = 0 ,j;
printf("输入数组的大小:\n");
scanf("%d",&n);
for (i = 0; i < n; i++) {
scanf("%d",&a[i]);
}
printf("输入一个指定的值:\n");
scanf("%d",&b);
for (i = 0; i < n; i++) {//找到指定值的坐标
if (a[i] == b) {
c = i;//返回到c
}
}
for (j = c; j < n-1 ; j++) {//这个必须要减一,因为长度为n,下标只能取到倒数第一位,而j只能取到倒数第二位,因为下句还有j+1,如果n不减一的话,那么j+1就不是最后一位了,就会出现下标越界的错误
a[j] = a[j+1];
}
n --;//数组的长度减一,如果不减一则会出现最后的值出现两次的现象,达不到要的效果
printf("删除后的数组是:\n");
for (i = 0; i < n; i++) {
printf("%d\t",a[i]);
}
return 0;
}
相关文章推荐
- Linux学习笔记(12)——正则表达式
- Codeforces 510 A.Fox and Snake
- Android正在使用Handler实现消息分发机制(两)
- vijos 1037 ***
- JQuery简介及语法学习笔记
- springmvc之HelloWorld
- C语言,如何检查文件是否存在和权限的信息
- [leedcode 47] Permutations II
- IOS WebView中JS和OC相互调用
- 树莓派 和 电脑共用显示屏 无屏幕玩转树莓派
- Windows下设置tomcat自动重启
- HTML(个人学习笔记,不断跟新修改中)
- cocos2d 缓存池 对象的再利用
- linux nc命令详解
- UI1_UIButton
- 数组根据index拆分和查询下标
- python检查字符串是否是正确ISBN的方法
- Linux的常用文件传输方式介绍与比较
- DB2完美导出SqlServer数据库.NET(C#)
- 独家分享——大牛教你如何学习Web前端开发