一道C语言编程题 哪里有错

/*********************************************************
* From C PROGRAMMING: A MODERN APPROACH, Second Edition *
* By K. N. King *
* Copyright (c) 2008, 1996 W. W. Norton & Company, Inc. *
* All rights reserved. *
* This program may be freely distributed for class use, *
* provided that this copyright notice is retained. *
*********************************************************/

/* repdigit.c (Chapter 8, page 166) */
/* Checks numbers for repeated digits */

#include <stdio.h>

int main(void)
{
bool digit_seen[10] = {false};
int digit,i;
long n;

printf("Enter a number: ");
scanf("%ld", &n);

while (n > 0) {
digit = n % 10;
digit_seen[digit] = true;
n /= 10;
}

printf("Repeated digit(s):");
for (i=0;i<10;i++){
if (digit_seen[i]== 'ture') printf("%d",i);
}

return 0;
}

c语言没有bool类型

程序的目的是统计一个大数字中不重复的数字

已经修正如下:

#include <stdio.h>

int main(void)
{
  char digit_seen[10] = {0};
  int digit,i;
  long n;

  printf("Enter a number: ");
  scanf("%ld", &n);

  while (n > 0) {
    digit = n % 10;
    digit_seen[digit] = 1;
    n /= 10;
  }

  printf("Repeated digit(s):");
  for (i=0;i<10;i++){
    if (digit_seen[i]== 1) printf("%d",i);
  }

  return 0;
}

 

温馨提示:内容为网友见解,仅供参考
无其他回答

一道c语言编程题求大神解答,找一下我错在哪了,谢谢了?
没有语法错误,只能说明在格式上没有找到错误,还不一定是正确的,更不要说能够正确执行了。没有语法错误,有三种可能:1、格式没问题,但算法错误;2、格式没问题,但不符合要求,导致计算结果错误;3、格式没问题,且算法没问题,能够计算出正确结果。只有符合第3种情况,才是正确的程序。

对于C语言编程出了错,怎么能快速找出错误呢?
代码是否存在逻辑错误:1、变量使用前未被数值 实例:int main(){ int x=5,y,z;z=x*y;printf("%d",z);return 0;} 在此程序中变量y在使用之前未被赋值,所以结果输出z的值就会是系统随机分配一个值给y再加乘以x的值。2、把赋值赋值符号“=”与等于符号“==”相混淆 实例:有一下语句:...

一道c语言编程题 我觉得答案不对
答案的代码的确是编写1+1\/3+1*2\/(3*5)+1*2*3\/(3*5*7)...这没有错,你理解的很好。我觉得错的是pi\/2=1+1\/3+1*2*3\/(3*5*7)+...1*2*3*...n\/(3*5*7*...(2n-1))这里题目写漏了 根据最后一个表达式n!\/(3*5*7*...(2n-1))可以知道每个位置的数,当n=1时为...

这个c语言代码错哪里了?
分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。{ z=x+y; t=z\/100; printf(...

一个c语言编程问题,输出分数高于平均分的人的成绩,不知为什么总是_百度...
错误的地方在于,你在使用scanf(),printf()这些函数的时候,错误使用了一些输入输出格式,比如有个地方你用了%f,但与之对应的却是一个int类型。还有,如果你想用%s输出一个char类型的变量x,应该这样写printf("%s",&x)。不能写成printf("%s",x)改成下面的样子就可以运行了。include <stdio.h> d...

请问一下大佬们,这道C语言编程题我为什么错,还有这些监测点的划分依据是...
C语言中一般int为32位,最大只能表示12的阶乘,超过12就会产生溢出,而题目中明确说明了数据会在double范围内,就是有可能超过int所表示范围。需要改为double类型。监测点划分依据:Cmn表示从n中选m个有多少情况,通过数学分析我们知道,当m=n\/2时取得最大值。因为我们有公式只要m1+m2=n那Cm1n=Cm2n...

c语言哪里出错了
在写for循环时错写成for(i=1;i<100;i++)这样100就没有加进去了,这就是逻辑错误。逻辑错误的查找通常采用调试的方式。比如,在Visual Studio C++中,你可以在运行结果不正确的代码段中设置断点,调试运行(F5),单步执行程序,观察执行过程中变量的值,直至找到出错的地方。

c语言编程题,看一下哪里错了。
num还没初始化,就调用int guess(int num),肯定错了。

一道从小到大排序的c语言编程题,用的是选择排序法,输出结果不对,但是...
这是我的选择排序法:include<stdio.h>void xuanze(int *a,int len);#define size 10int main(){int shuzu[10],i;printf("请输入10个整数:\\n");for(i=0;i<size;i++){scanf("%d",&shuzu[i]);}xuanze(shuzu,size);printf("排序后:\\n");for(i=0;i<size;i++){printf("%5d...

C语言程序设计找错
1.这个程序中b,c是整型,因为TC20是16位模式,int型存储空间只有2字节,无符号最大才65535,你那个计算出来的值太大,所以就错了,把int b,c;改为long b,c;,printf中改为"%ld"就好了.楼上说的tc30是32位模式,int型是4字节,和原来的long长度一样,所以没问题 2.同上 3.这个也是TC20的BUG,你...

相似回答