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.
最后按照下标大小循环输出这个数组就可以了。