如果你只是刪掉為k的值,然后輸入的話,只要一個for循環(huán)就夠了,把不等于k的值直接輸出就行,不用再存入數組里了,如:
站在用戶的角度思考問題,與客戶深入溝通,找到和龍網站設計與和龍網站推廣的解決方案,憑借多年的經驗,讓設計與互聯(lián)網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網站設計、網站制作、企業(yè)官網、英文網站、手機端網站、網站推廣、空間域名、網頁空間、企業(yè)郵箱。業(yè)務覆蓋和龍地區(qū)。
#includestdio.h
void
main()
{
int
n,k,x[100000];
int
i,flag=0;
scanf("%d",n);
for(i=0;in;i++)
scanf("%d",x[i]);
scanf("%d",k);
for(i=0;in;i++)
if(x[i]!=k)
{
if(flag==0)
//(讓第一個輸出前不加空格)
{
printf("%d",x[i]);
flag=1;
}
else
printf("
%d",x[i]);
}
printf("\n");
}
一維 二維都可以
刪除其后相同元素并前置
以前做的別的沒有了
#includestdio.h
#define M 2
#define N 5
void main()
{
int c[M][N];
int i,j,m,n;
printf("請輸入%d行%d列矩陣\n",M,N);
for(i=0;iM;i++)
{
for(j=0;jN;j++)
scanf("%d",c[i][j]);
}
printf("C[M][N]:\n");
for(i=0;iM;i++)
{
for(j=0;jN;j++)
printf("%8d",c[i][j]);
putchar('\n');
}
for(m=0;mM;m++)
{
for(n=0;nN;n++)
{
for(i=0;iM;i++)
{
for(j=0;jN;j++)
{
if(m==in==j);
else
if(c[m][n]==c[i][j])
{
c[i][j]=0;
}
}
}
}
}
for(i=0;iM;i++)
{
for(m=0;mN;m++)
for(j=0;jN-1;j++)
if(c[i][j]==0)
{
c[i][j]=c[i][j+1];
c[i][j+1]=0;
}
}
printf("C[M][N]x:\n");
for(i=0;iM;i++)
{
for(j=0;jN;j++)
printf("%8d",c[i][j]);
putchar('\n');
}
}
在JAVA中如何從數組中刪除一個元素的程序如下:
package org.usc.action;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
public static void main(String[] args) {
String[] str={"張三","李四","王五","宋六","趙七","朱八","何九","田十"};
ListString list=Arrays.asList(str);//將數組轉換為list集合
if(list.contains("張三"))
{//加入集合中包含這個元素
///這個時候我們直接移除會報錯,所以我們要轉換為Arraylist
//list.remove("張三");
ListString arrayList=new ArrayListString(list);//轉換為ArrayLsit調用相關的remove方法
arrayList.remove("張三");
for(String str1:arrayList ){
System.out.print(str1+",");}
}}
部分解釋:
1、remove這些method時出現(xiàn)java.lang.UnsupportedOperationException異常。
2、這是由于Arrays.asList() 返回java.util.Arrays$ArrayList, 而不是ArrayList。Arrays$ArrayList和ArrayList都是繼承AbstractList, remove,add等method在AbstractList中是默認throw UnsupportedOperationException而且不作任何操作。
3、ArrayList override這些method來對list進行操作,但是Arrays$ArrayList沒有override remove(),add()等, 所以throw UnsupportedOperationException。
擴展資料:
因為Java沒有結構,數組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現(xiàn)自動的無用單元收集。
Java允許擴展編譯時檢查潛在類型不匹配問題的功能。Java要求顯式的方法聲明,它不支持C風格的隱式聲明。
異常處理是Java中使得程序更穩(wěn)健的另一個特征。異常是某種類似于錯誤的異常條件出現(xiàn)的信號。使用try/catch/finally語句,程序員可以找到出錯的處理代碼,這就簡化了出錯處理和恢復的任務。
可以自己寫個函數,在源字符串中查找目標字符串并刪除,后續(xù)字符依次前移。
#includestdio.h
void f(char a[])
{
int n,i,j,k;
i = 0;
while(a[i] != '\0')
i++;
n = i; // 字符長度
for(i = 1;in;i++)
{
for(j=0;ji;j++)
{
if(a[i] == a[j])
{
for(k=i;kn-1;k++)
a[k] = a[k+1];
a[k] = '\0';
i--;
n--;
}
}
}
printf("%s\t",a);
printf("%d\n",n);
}
void main()
{
char a[100];
scanf("%s",a);
f(a);
}
如下int del_zero(int *p,int n);為你需要的函數,下面附帶測試程序!
不明白就追問吧!
#includestdio.h
int del_zero(int *p,int n);
int main(void)
{
int i,n,test[128];
printf("請輸入測試數組元素的個數n...\n");
scanf("%d",n);
printf("請輸入%d個數組元素\n",n);
for(i=0;in;i++)
scanf("%d",test[i]);
printf("\n輸入的數據元素為:\n");
for(i=0;in;i++)
printf("%d ",test[i]);
n=del_zero(test,n);
printf("\n刪除0元素后的數組長度=%d,剩余元素為:",n);
for(i=0;in;i++)
printf("%d ",test[i]);
return 0;
}
int del_zero(int *p,int n)
{
int i,j,temp,len=n;
for(i=0;ilen;i++){
if(p[i]==0){
for(j=i;jlen;j++){
p[j]=p[j+1];
}
len--;
}
}
return len;
}