Problem C: 零起点学算法83——数组中删数
分析
关键是进行首项是不是要删去数字的判断,这种只要要求删去一个数字的功能只需要使用continue语句而不是break语句。
Description
在给定的数组中删除一个数
Input
多组测试,每组第一行输入1个整数n(n<20),然后是n个整数 第二行输入1个整数m
Output
删除在第一行的n个整数中第一次出现数字m并删除,然后按照顺序输出剩下的数, 最后一个数后面无空格
Sample Input
4 1 2 3 4
3
Sample Output
1 2 4
HINT
m有可能在原数组中找不到,找不到则输出原数组
#include<stdio.h>
int main(){
int a[100],n,i,k,m,ch=1;
while(scanf("%d",&n)!=EOF){
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&k);
if(k!=a[0]){
printf("%d",a[0]);
for(i=1;i<n;i++){
if(k==a[i]) continue;
printf(" %d",a[i]);
}
}
else{
printf("%d",a[1]);
for(i=2;i<n;i++)
printf(" %d",a[i]);
}
printf("\n");
}
return 0;
}
总结
1、对于末尾输出无空格情况就要将首项的输出格式与其他项分开。
2、对于判断和循环的符合语句,可以在程序最终的部分再添加换行符。