问题描述
- 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