方法2:在接收过程中直接比较
int main() { int n=0; int m=0; scanf("%d %d",&n,&m); int arr1[n][m]; int i=0; int j=0; //接收第一个数组的内容 for(i=0;i<n;i++) { for(j=0;j<m;j++) { scanf("%d",&arr1[i][j]); } } //接收第2个数组的内容,并比较 int tmp=0; int flag=1;//假设是相等的 for(i=0;i<n;i++) { for(j=0;j<m;j++) { scanf("%d",&tmp); if(tmp != arr1[i][j]) { flag=0; goto end; } } } end: if(flag==1) printf("Yes\n"); else printf("No\n"); return 0; }
执行:
BC98 - 序列中删除指定的数字
方法1:把要删除的元素改为0
思路:
1.先定义数组大小为n,接着通过for循环输入数组的元素。
2.定义变量del作为要删除的元素,输入要删除的元素。遍历数组,若此刻arr[i]遇到del,则把arr[i]改成0
3.把输入的数组里面不为0的元素全打印了。
int main() { int n=0; int m=0; scanf("%d",&n); int arr[n]; int i=0; for(i=0;i<n;i++) { scanf("%d",&arr[i]); } int del=0; scanf("%d",&del); for(i=0;i<n;i++) { if(arr[i]==del) arr[i]=0;//将要删除的元素改为0 } for(i=0;i<n;i++) { if(arr[i]!=0)//打印不是0的元素 { printf("%d ",arr[i]); } } return 0; }
方法2:打印不用删除的元素
思路:输入要删除的元素del之后,直接打印数组,用一个判断条件跳过要删除的元素,打印其它不用删除的。
int main() { int n=0; int m=0; scanf("%d",&n); int arr[n]; int i=0; for(i=0;i<n;i++) { scanf("%d",&arr[i]); } int del=0; scanf("%d",&del); for(i=0;i<n;i++) { if(arr[i]!=del) { printf("%d ",arr[i]); } } return 0; }
方法3:定义两个下标 i 和 j(动图演示)
动图演示的过程:
#include<stdio.h> int main() { int n=0; //int m=0; scanf("%d",&n); int arr[n]; int i=0; int j=0; for(i=0;i<n;i++) { scanf("%d",&arr[i]); } int del=0; scanf("%d",&del); for(i=0;i<n;i++) { if(arr[i]!=del) { arr[j++]=arr[i]; } } for(i=0;i<j;i++) { printf("%d ",arr[i]); } return 0; }
本篇结束,若有错误,欢迎大家指正,感谢支持!