标题:新手学C ,还请各位高人指点
只看楼主
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
得分:0 
回复 10楼 jyxiasf
最后的if(x=1)需要加两个等号。一个等号是赋值,两个等号才是判断是否相等。
2019-09-03 18:17
qc97001
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-28
得分:0 
回复 4楼 zhaoxd
t = x % 10;


  这个求余就是从最后一个数字判断的!所以输入1122,输出2重复是正确的!
2019-09-03 23:01
zhouaichun
Rank: 2
等 级:论坛游民
帖 子:8
专家分:18
注 册:2015-4-6
得分:0 
#include<stdio.h>
int main()
{
  int x,x1,t,a[10]={0};  //定义几个整型变量和一个10个元素的整型组并初始化为0.
  scanf("%d",&x);        //输入要检查的数据
  x1=x;                  //x1被赋值用于后面语句显示
  for(;x;x/=10)          //这条语句要注意的是在循环体执行一次之后才会执行x/=10
    {
     t=x%10;             //进行取余操作取出个位数
     printf("a[%d]的值是%d\n",t,a[t]);//用于显示以取出的个位数为下标的元素的值
     if(a[t])            //这个值只能是1或者0,用于判断所取出的个位数在之前是否出现过                        
       {
          printf("%d中%d重复了\n",x1,t);//为1时执行的语句
          return 0;
       }
     else
     a[t]=1;                             //为0时执行的语句
   }
 printf("%d中没有重复的数字\n",x1);
 return 0;
}
/*这个程序关键语句是a[t]=1,在初次执行时,由于数组被初始化为0,选择语句会执行a[t]=1
这条语句,数组中以t为下标的元素被赋1,当后面有t的值与此t值相同时,if(a[t])则为真,执行
 printf("%d中%d重复了\n",x1,t);return 0;这两条语句。*/
2019-09-10 17:42
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
得分:0 
有点搞不懂,判断一个整数是否有重复的数字(0-9)
可以先找出那些重复了,那些没重复,最后再整体判断输出结果就行了,
怎么感觉有几个程序是只要出现符合的条件就return 0;直接结束,有把握找到结果吗?
而且程序发出来之前不应该自己先编译运行一下吗?这样看程序都有些烦,怎么会解决问题。
2019-09-11 09:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-496641-1-1.html




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

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