c语言-麻烦看看C语言的问题,求大神

问题描述

麻烦看看C语言的问题,求大神

读入一个整数,统计并输出该数中2的个数?要求定义并调用函数countdigit(number,digit),它的功能是统计整数number 中数字digit 的个数?例如,countdigit(10090,0) 的返回值是3?
int countdigit (int number,int digit){
int d,n,count;
do{
n=number;
d=n%10;
n=n/10;
if (d==digit) count ++;}while (n!=0);
return count;
}

#include

int main(void)
{

int x,t;
printf("Input an integer: ");
scanf ("%d",&x);
t=countdigit(x,2);

printf("Number of digit 2: %d",t);

}
输出不出来为什么呢

解决方案

int countdigit (int number,int digit){
    int d,n,count=0;
        n=number;
    while (n!=0){

        d=n%10;
        n=n/10;
        if (d==digit) count ++;}
        return count;
    }

#include<stdio.h>

int main(void)
{

    int x,t;
    printf("Input an integer: ");
    x=123;
    t=countdigit(x,2);

    printf("Number of digit 2: %d",t);
}

解决方案二:

http://codepad.org/CWep1Tuz

你的循环整个不对,帮你改了。

解决方案三:

你把 数学 “0” 给排除了

解决方案四:

count =0;
你的count未赋值

时间: 2024-09-24 06:50:43

c语言-麻烦看看C语言的问题,求大神的相关文章

printf-c语言的一道题 动态规划 新手,求大神看看我代码的问题

问题描述 c语言的一道题 动态规划 新手,求大神看看我代码的问题 描述 7 3 8 8 1 0 2 7 4 4 4 5 6 2 5 (图1) 图1显示了一个三角形数. 编写一个程序,计算最高金额的数字传递路线,从顶部开始和结束的地方固定在底座上. 每一步可以走斜向下向左或向右斜下. 输入 程序从标准输入读取. 第一行包含一个整数N:三角形的行数. 以下N行描述三角形的数据. 在三角形的行数> 1但< = 100. 三角形的数量,所有的整数,在0到99之间. 输出 你的程序是编写到标准输出. 最

出现频率-一道C语言编程题,本人初学者,求大神解答

问题描述 一道C语言编程题,本人初学者,求大神解答 编写程序实现功能:数据文件story.txt是一篇英文小故事,请先统计其中26个字母的出现次数. 要求一:再根据用户要求,输出某个字母的出现次数,直到用户输入#为止. 要求二:请输出出现频率最高的三个字母和它们的出现次数. 解决方案 #include #include #include int main() { int alpha[26]={0}; //用于计数26个字母出现的次数 FILE *text; //FILE 指针 char ch;

求大神来解决-C语言算法问题,矩阵排序。求大神

问题描述 C语言算法问题,矩阵排序.求大神 一个N*N的矩阵,现在求一个高效的算法.例如一个3*2的矩阵,将矩阵中某个元素的值变为他在矩阵中所有元素的有大到小排序的位置(序号,比如图中元素7的值最大,所以就让他变为1).现在有3W*3W=9亿的矩阵,怎么处理最高效,基本算法就不要说了,现在就是要解决算法不够高效的问题.谁有好的思路可以提一下么?求大神 解决方案 这就是一个最简单的排序问题,数据用二维数组装的.别被矩阵唬住了.排序问题的算法已经被研究烂了,教材里有的是,我就不赘述了 解决方案二:

编程问题 C C#语言 最好能给出代码,求大神!

问题描述 编程问题 C C#语言 最好能给出代码,求大神! 1.从键盘接受两个任意正整数,要求第一个正整数必须小于第二个正整数,然后把这两个数范围内(包括这两个数)的所有偶数分解为两个素数之和,并输出每个偶数以及对应的两个素数. 2.编写程序,将输入的一行字符串加密.加密时,每个字符的ASCII码依次反复加上密码表4,9,6,2,5,7,3中对应的数字. 如果相加的结果超过字符Z的ASCII码122,则进行取模运算.加密与解密的顺序相反,要求编写加密和解密两个函数, 输出各个过程的结果. 如输入

c语言代码问题,有疑问,求大神解释

问题描述 c语言代码问题,有疑问,求大神解释 这个function的机理是什么? 为什么第二个循环只有分号...有什么作用 求大神解释 char *mystery( char *a, char *b ) { char *c = a; while ( *c != '' ) { c++; } while (( *c++ = *b++ ) != '' ) ; return a; } 解决方案 第一个循环,c指向了a字符串的末尾: 第二个循环,把b指向的字符串拷贝到a字符串后面了. 解决方案二: 求大神

c语言-问大神们一个C语言蓝桥杯的问题,跪求大神啊

问题描述 问大神们一个C语言蓝桥杯的问题,跪求大神啊 加法变乘法 我们都知道:1+2+3+ ... + 49 = 1225 现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015 比如: 1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015 就是符合要求的答案. 请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10). 注意:需要你提交的是一个整数,不要填写任何多余的内容. #include "stdio.h&quo

c语言-PAT 数字黑洞问题!!求大神!我要疯了QAQ/(ㄒoㄒ)/~~

问题描述 PAT 数字黑洞问题!!求大神!我要疯了QAQ/(ㄒoㄒ)/~~ #include<stdio.h> #include<string.h> void sortdown(int a[]); void sortup(int b[]); int main(void) { char number[4]; int digit[4]; int digit2[4]; int con[4]; int output=0; int i; scanf("%s",number

c语言-C语言入门问题求大神指点

问题描述 C语言入门问题求大神指点 #include #define TABINC 8 //tab increment size //replace strings of blanks with tabs and blanksint main(void){ int c nb nt pos; nb = 0; //number of blanksnt = 0; //number of tabsfor (pos = 1; (c = getchar()) != EOF; pos++){ if (c ==

c语言-C语言小白提问```求大神

问题描述 C语言小白提问```求大神 float search(float (*p)[4]){ float *pt = NULL; for (int i = 0; i < 4; i++) { if ((*p + i) < 60) { pt = *p; } } return pt; } int main(int argc, const char * argv[]) { float score[][4] = {{60,70,80,90},{56,86,97,68},{57,58,98,95}};