条件语句-c语言,打孔问题,求大神指导。

问题描述

c语言,打孔问题,求大神指导。
 题目,s得到一个数,他想知道这个数每一位上的数字的孔数之和,其中,1,2,3,5,7这几个数字是没有孔的,0,4,6,9都只有一个孔,而8有两个孔。

解决方案

不知道是不是这个意思

#include <stdio.h>
#include <stdlib.h>
#include <string.h> 

int holeNum[10] = {
    1, 0, 0, 0, 1, 0, 1, 7, 2, 1
} ;

int getHoleNum(char* buff){
    int res = 0;
    int len = strlen(buff);
    for(int i = 0; i < len; i++){
        res += holeNum[buff[i] - '0'];
    }
    return res;
}

int main(){
    int res;
    int size = 1024;
    char* buff = (char*)malloc(size);

    while(true){
        printf("请输入数字:");
        gets(buff);
    //  printf("%s", buff);
        printf("该数字的洞数共有%d个
", getHoleNum(buff));
    }
    return 0;
}

解决方案二:

取整数的各个数位,利用分支switch case或者条件if语句,判断其属于那种数字。然后计算孔。取整数S的各个数位:
count=0;
for(i=1;; i++){
d=S%10;
S=S/10;
switch (d){
case 0:
case 4:
case 6:
case 9:count++;

}

if(S==0)break;
}
printf("%d",count);
以上是代码片段!

解决方案三:

求大神指导,这个线性表的问题

时间: 2025-01-01 14:51:50

条件语句-c语言,打孔问题,求大神指导。的相关文章

菜鸟 求解答-orcale中between and的sql语句怎么写啊!求大神指导

问题描述 orcale中between and的sql语句怎么写啊!求大神指导 就是我想查询数据库中name列里随便一个范围内的数据 该怎么写呢, 解决方案 你的name是什么类型的? 字符串的话只能用枚举了. name in ('a','b','c') 如果是说数字类型或者日期时间类型,可以用 between and 或者 > < 当然也可以枚举 举例如下: 字段类型: name varchar2(30), age int(3) select * from tableName where n

求解决-用while循环和if语句并且用c语言编写,求大神们指教

问题描述 用while循环和if语句并且用c语言编写,求大神们指教 /**输出21世纪中截止某个年份以来的所有闰年年份.注意:闰年的判别条件是该年年份能被4整除但不能被100整除.或者能被400整除. 输入格式: 输入在一行中给出21世纪的某个截止年份. 输出格式: 逐行输出满足条件的所有闰年年份,即每个年份占一行.输入若非21世纪的年份则输出"Invalid year!".若不存在任何闰年,则输出"None". 输入样例1: 2048 输出样例1: 2004 20

c语言问题求大神指导!!

问题描述 c语言问题求大神指导!! #include""stdio.h""#include""stdlib.h""void main(){ int problemguess=1a; char ch; problem=(int)(rand()%899+1); scanf(""%f%d""&ch&guess); for(a=0;ch!='n';a++) for(a=0;gue

c语言的问题求大神解答!!1

问题描述 c语言的问题求大神解答!!1 #include"stdio.h" #include"time.h" #include"stdlib.h" void main() { clock_t start,over; double time; int k=42,a=0; char ch='a'; start=clock(); scanf("%d",&a); leap:while(a!=k) { if(a>k) pr

c语言的问题求大神的指导!!!

问题描述 c语言的问题求大神的指导!!! #include"stdio.h" main() { int a[10],i,j,k; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) printf("%5d",a[i]); for(i=0;i<10;i++) for(j=0;j<10;j++) if(a[i]<a[j]) { k=a[i]; a[i]=a

c语言-C语言小白问题求大神指教

问题描述 C语言小白问题求大神指教 #include #include unsigned fun(int w) { int a; int i; i=1; a=w; while(a==0) { a=a/10; i++; } w=w%pow(10,i); return w; } unsigned main() { int w; printf("please enter a number:n"); scanf("%d",&w); printf("the

c 语言的问题求大神的指导!

问题描述 c 语言的问题求大神的指导! #include""stdio.h""#include""stdlib.h""void main(){ int guess=0problemch; ch=getchar(); do {scanf(""%d""&guess); problem=(int)(rand()%100)+1; for(;guess!=problem;) {if(gue

输出-C语言完全数问题,求大神直接给程序

问题描述 C语言完全数问题,求大神直接给程序 输入整数n,判断n是否是完全数,并输出结果 输入N,输出1~N之间的所有完全数 解决方案 #include int main() { int n,N,i,j,sum; printf("输入整数n,判断n是否是完全数:n"); scanf("%d",&n); sum = 0; for (i = 2;i < n;i++) { if (n%i == 0)sum += i; } if (n==sum) printf

c语言基础-真的很着急,大一学生党,求大神指导写一个c语言拨号程序

问题描述 真的很着急,大一学生党,求大神指导写一个c语言拨号程序 能显示出通讯录中所有人姓名,当选中某个姓名时,屏幕上模拟打字机效果依次显示出此人的电话号码中的各个数字,并伴随相应的拨号声 解决方案 http://zhidao.baidu.com/link?url=svF4fjRTNuBmCJyCiRipzB_21UO5zvNc0hCye7qj8nxOY1lC78667ycDqYnJ7xHiGT00M4NuYqGIak2R5cEU961mjRl1ADLf-Eh1nDKpiBi