永发信息网

求C语言高手给菜鸟解释一下。。这个是啥意思(数组去重)

答案:5  悬赏:0  手机版
解决时间 2021-01-29 12:29
  • 提问者网友:焚苦与心
  • 2021-01-28 21:44
求C语言高手给菜鸟解释一下。。这个是啥意思(数组去重)
最佳答案
  • 五星知识达人网友:青灯有味
  • 2021-01-28 22:17
去掉数组内相同的数字追问能分析一下吗,是怎么去掉的追答#include 
int main()
{
    int a[12]={1,2,3,2,4,5,4,3,4,6,7,8};
    int i,j,k=0, b[12]={0};

    for(i=0;i<=11;i++){
        for(j=0;j<=k;j++){    
            if(a[i]==b[j])
            {    
                break;
            }
            if(j==k)
            {    
                b[k]=a[i];
                k++;
                break;
            }
        }
    }
    printf("去重后的数组为:
");
    for(i=0;i        printf("a[%d]=%d
",i,b[i]);
    getchar();

} 390903134qq加我
全部回答
  • 1楼网友:山有枢
  • 2021-01-29 02:14
就是一个原始数组a,一个结果数组b;把a中的第一个数字a[0]和b中的每一个数字进行对比,没有相同的则把a[0]加入b中;然后再来a[1]。。。以此类推;每次都要和b中的每个数字对比;个人觉得,第二个for循环中的上限可以用k来代替,这样可以减少循环次数追问它是怎么挑出来的啊。。看不懂啊追答你一步一步调试看结果不就晓得怎么挑出来的了么追问菜鸟,看不懂追答#include 
#define N 7
int main()
{
int i,j;
int a[N]={1,1,2,1,2,1,3};
int b[N]={0};
int k=0;
b[k++]=a[0];
for(i=0;i {
for(j=0;j{
if(a[i]==b[j])
{
break;
}
}
if(j==k)
{
b[k++]=a[i];
}
}
printf("去重后的数组为: ");
for(i=0;i {
printf("b[%d]=%d ",i,b[i]);
}
}




和楼上的差不多的
  • 2楼网友:詩光轨車
  • 2021-01-29 01:40
可以明确地告诉你,代码是错的
  • 3楼网友:山有枢
  • 2021-01-29 00:36
对给定的数组进行去重操作,就是通过for循环将数组中不重复的元素挑出来给b[]数组,后再将数组b[]输出,就实现了将数组中重复元素去掉的操作了。望采纳。追问它是怎么挑出来的啊。。看不懂啊
  • 4楼网友:渊鱼
  • 2021-01-28 22:56
你这个代码有没有运行过啊,数组去重是吧数组中重复的东西去掉是吧,你这个程序不太对呀
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯