A. c語言:在一組數中刪除指定的數(假設該組數中沒有重復數據) 求代碼
#include<stdio.h>
int main()
{int n=10,i,j,x,a[15]={1,2,3,4,5,6,7,8,9,10};
printf("請輸入要刪除的數:");
scanf("%d",&x);
for(i=0;i<n;i++)
if(a[i]==x)
{for(j=i;j<n-1;j++)
a[j]=a[j+1];
break;
}
if(i==n)printf("未找到要刪除的數! ");
else for(i=0,n--;i<n;i++)
printf("%d ",a[i]);
printf(" ");
return 0;
}
B. c語言編程輸入10個整數,實現在這10個整數中查找某個整數,找到後將這個數刪除,若沒有找到
#include<stdio.h>
intmain()
{
inta[10];
intl_find;
intlogic=0;
printf("input10number ");
for(inti=0;i<10;i++)scanf("%d",&a[i]);
printf(":");
scanf("%d",&l_find);
for(i=0;i<10;i++)
{
if(a[i]==l_find)
{
logic=1;
for(intj=i;j<9;j++)a[j]=a[j+1];
break;
}
}
if(logic==1)
{
printf("數已刪除 ");
for(i=0;i<9;i++)printf("%d",a[i]);
}
elseprintf("沒有找到這個數 ");
}
C. C語言問題,任意輸入十個數,去掉其中最大值和最小值,求剩餘數的平均值,求教~
方法實現有多種:
一、最直觀的方式:
1、將輸入的十個數,存到數組中;
2、遍歷數組,找到最大值和最小值;
3、從數組中將最大值和最小值移除;
4、將剩餘的8個數值累加,並將和值除以8,得到平均值;
5、輸出結果。
二、優化方式:
分析原始演算法,需要循環多次,包括輸入,查找最值,移除,累加等。針對此,可以進行優化。
1、查找最大值和最小值可以通過一個循環完成;
2、由於只是要計算最終的平均值,所以可以不從數組移除,而是累加10個數的和值,再減去兩個最值;
3、輸入時可以不保存數組,而是輸入一個處理一個,降低空間開銷;
4、輸入時可以同時執行累加及查找最值操作。
三、經過優化,代碼可以書寫如下:
#include<stdio.h>
intmain()
{
floataver=0;
inti,n,max,min;
scanf("%d",&max);
aver=min=max;//輸入第一個數,當做初始的最大最小值。此時和值也為該值。
for(i=1;i<10;++i)//循環9次。
{
scanf("%d",&n);//輸入剩餘9個數。
aver+=n;//累加。
if(max<n)max=n;//查找最大值。
elseif(min>n)min=n;//查找最小值。
}
aver-=min+max;//在和值中減去兩個最值。
aver/=8;//計算平均值。
printf("%f ",aver);//輸出結果。
return0;
}
D. C語言編程,輸入10 個正整數到數組,刪除刪除其中的奇數,輸出
用%2取余計算確定是否是奇數。
sql">include<stdio.h>
voidmain(){
inti,num[10];
for(i=0;i<10;i++){
printf("請輸入第%d個數:",(i+1));
scanf("%d",num[i]);
}
printf("刪除奇數後的數組為:");
for(i=0;i<10;i++){
if(num[i]%2==0){
printf("%d,"num[i]);
}
}
}
E. 用C語言寫出程序。輸入10個數字,在刪除其中一個數字。然後輸出剩下的九個數字
兩種方法。
1、正常的方法。定義10個元素的數組,然後先輸入。然後輸入刪除的數字,遍歷數組,找到這個元素,然後將後面的元素一次向前移動一位,然後輸出前9個數字。
2、偷懶的方法。定義10個元素的數組,然後先輸入。然後輸入刪除的數字,直接遍歷輸出數組,輸出前先判斷是否等於刪除的數字,等於的話,直接continue就可以了。
F. C語言循環輸入10個數,存入數組,刪除指定數據
#include<stdio.h>
intmain(){
inta[]={23,12,34,52,35,53,32,34,52,11,24,56,73,21,24};
inti,j,x,n=sizeof(a)/sizeof(a[0]);
intflag=1;
for(i=0;i<n;++i)
printf("%d",a[i]);
printf(" 要刪除的數:");
scanf("%d",&x);
for(i=0;i<n&&flag;++i){
if(a[i]==x){
for(j=i;j<n-1;++j)
a[j]=a[j+1];
--n;
flag=0;
}
}
if(flag)printf("數組中沒有找到:%d,刪除失敗! ",x);
else{
printf("刪除%d後: ",x);
for(i=0;i<n;++i)
printf("%d",a[i]);
printf(" ");
}
return0;
}
G. C語言 已知10個整數,刪除其中所有大於等於1的數據,輸出剩餘數據和剩餘個數
#include"stdio.h"
intmain()
{
inta[10];
inti;
intsum=0;
printf("請輸入10個整數: ");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("刪除這10個數中大於等於1的數據後,餘下數據是: ");
for(i=0;i<10;i++)
{
if(a[i]<1)
{
printf("%d",a[i]);
sum++;
}
}
printf(" 剩餘數據個數為:%d ",sum);
}
結果:
H. c語言問題 輸入十個整數然後刪除一個
因為你的if(flag==1)
{for(i=0;i<=8;i++)
printf("%2d",a[i]);
printf("%d\n");}
最後的printf裡面多加了一個%d,應該是printf("\n");
I. 從鍵盤輸入10個數,刪除相同的數,用C語言怎樣編程
只說思路。
將這些數保存到一個數組里。
然後從第1個開始挨個跟後面的數相比較,如果有一樣的就將那個數後面的所有的數賦給它們前面的數,將數組下標減1.
最後按照下標大小循環輸出這個數組就可以了。