| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1694 人关注过本帖
标题:remove
只看楼主 加入收藏
zhangx378
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2016-9-29
结帖率:90.91%
收藏
 问题点数:0 回复次数:10 
remove
输入两行数字,第一行数字n是代表数组长度,第二行共有n+1个数字,前n个数字是数组元素,最后一个是数值。去掉数组中与最后一个数字相等的元素后输出数组长度。例如
4
3 2 2 3 3
输出2
#include<stdio.h>

int main(){
    int n,i,sum,a;
    int num[100000];
    scanf("%d",&n);
    for (i=1;i<=n+1;i++)
    {    if(i!=n+1)
            scanf("%d",&num[i]);
        else
            scanf("%d",&sum);
    }
    for (a=0,i=1;i<=n;i++);
    {
        if(num[i]!=sum)
            a++;
        else
            a=a;
        
    }
    printf("%d\n",a);

    return 0;
}
我的代码结果总是一,希望各位能帮忙检查一下,谢谢。
搜索更多相关主题的帖子: include 元素 
2016-10-09 09:46
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
for (a=0,i=1;i<=n;i++); 去掉;

早知做人那么辛苦!  当初不应该下凡
2016-10-09 10:23
zhangx378
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2016-9-29
收藏
得分:0 
回复 2楼 炎天
不行啊,还是会出错。
2016-10-09 10:27
zhangx378
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2016-9-29
收藏
得分:0 
回复 2楼 炎天
也初始化a了,赋值为0
2016-10-09 10:29
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
回复 4楼 zhangx378
二楼正解,去掉分号。
2016-10-09 10:32
zhangx378
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2016-9-29
收藏
得分:0 
回复 2楼 炎天
已解决,谢谢。不过去掉分号有什么区别啊?
2016-10-09 10:35
zhangx378
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2016-9-29
收藏
得分:0 
回复 2楼 炎天
不好意思哈,刚才看错了,以为要去掉整行,已解决,谢谢。
2016-10-09 10:36
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
回复 6楼 zhangx378
for (a=0,i=1;i<=n;i++);
如果不去掉分号, for后面小括号里面的语句一直运行,直到i=n,然后才执行for (a=0,i=1;i<=n;i++);这句代码后面的语句.
去掉分号i加一次执行一次for (a=0,i=1;i<=n;i++)后的语句一次,也就是按你的本意运行

早知做人那么辛苦!  当初不应该下凡
2016-10-09 11:06
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:0 
for (a=0,i=1;i<=n;i++);有了分号之后会一直执行直到i=n+1才退出循环,
而num[n+1]没有被赋值是一个随机数,
{
        if(num[i]!=sum)
            a++;
        else
            a=a;
        
}
之后执行这个代码块,执行if语句num[i]是一个随机数,sum是你输入的最后一个数,这两个数一般来说都不会相等,所以执行a++,a=1;;
你的程序每次执行之后结果都是1。。。。
2016-10-09 12:36
zhangx378
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2016-9-29
收藏
得分:0 
回复 9楼 word123
明白了😊
2016-10-09 13:44
快速回复:remove
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018322 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved