一道c语言编程题,求大佬解答,求代码

一道c语言编程题,求大佬解答,求代码编程实现:从键盘上给一维数组a[N]任意输入N个正整数,若输入了小于等于0的整数,必须提示重新录入该数;然后调用函数fun实现删去a数... 一道c语言编程题,求大佬解答,求代码编程实现:从键盘上给一维数组a[N]任意输入N个正整数,若输入了小于等于0的整数,必须提示重新录入该数;然后调用函数fun实现删去a数组中所有重复的元素,比如a数组中如果存放的是3,2,6,2,198,56,6,则删除以后a数组中的内容为3,2,6,198,56。其中,fun函数的返回值是a数组中删除重复元素以后的有效元素个数。在main函数中还要显示出删除了重复元素以后的a数组及剩下的有效元素个数。另外,N被宏定义为15。 展开
 我来答
xuzhouliuying
高粉答主

2018-05-25 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:5.4万
采纳率:86%
帮助的人:2.4亿
展开全部
#include <stdio.h>
#define N 15
int fun(int a[])
{
int i,j,k,m=N;
for(i=0;i<m-1;i++)
for(j=i+1;j<m;j++)
if(a[j]==a[i])
{
for(k=j;k<m-1;k++)
a[k]=a[k+1];
m--;i--;
}
return m;
}
void main()
{
int i,k,a[N];
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
if(a[i]<=0)
{
printf("输入的第%d个数不是正整数,请重新输入第%d个数:\n",i+1,i+1);
i--;
}
}
k=fun(a);
for(i=0;i<k;i++)
printf("%d ",a[i]);
printf("\n有效元素个数: %d",k);
}

//运行示例:

听不清啊
高粉答主

2018-05-25 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include<stdio.h>
#define N 15
int fun(int a[])
{int i,j,k,n=N;
 for(i=0;i<n-1;i++)
   for(j=i+1;j<n;j++)
     if(a[j]==a[i])
       {for(k=j;k<n-1;k++)
          a[k]=a[k+1];
     n--;
     j--;
       }
 return n;      
}
int main(void)
{int i,n,a[N];
 for(i=0;i<N;i++)
   do
     {scanf("%d",&a[i]);
      if(a[i]<=0)printf("请重新输入一个正数:");
     }while(a[i]<=0);
 printf("数组a中有%d个非重复元素:\n",n=fun(a));
 for(i=0;i<n;i++)
   printf("%d ",a[i]);
 printf("\n"); 
 return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式