Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C在新行中逐个写入扩展名中的数字_C - Fatal编程技术网

C在新行中逐个写入扩展名中的数字

C在新行中逐个写入扩展名中的数字,c,C,我是C语言的新手,我不能在学校做简单的练习 我想这样做: Please insert a number: 12345 five four three two one 基本上,用户输入一个数字,然后程序在新行中写入从最后一个有效数字到最高有效数字的数字 这与开关功能有关,仅与基本编程技能有关 我有这个: #include <stdio.h> #include <stdlib.h> int main() { int num; printf("Pleas

我是C语言的新手,我不能在学校做简单的练习

我想这样做:

 Please insert a number: 12345
 five
 four
 three
 two
 one
基本上,用户输入一个数字,然后程序在新行中写入从最后一个有效数字到最高有效数字的数字

这与开关功能有关,仅与基本编程技能有关

我有这个:

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

int main()
{
    int num; printf("Please insert a number: "); scanf("%d", &num);
    switch(num){
    case 1:printf("One\n");break;
    case 2:printf("Two\n");break;
    case 3:printf("Three\n");break;
    case 4:printf("Four\n");break;
    case 5:printf("Five\n");break;
    case 6:printf("Six\n");break;
    case 7:printf("Seven\n");break;
    case 8:printf("Eight\n");break;
    case 9:printf("Nine\n");break;
    case 0:printf("Zero\n");break;
    }
} 
#包括
#包括
int main()
{
int num;printf(“请插入一个数字:”;scanf(“%d”,&num);
开关(num){
案例1:printf(“一次”)中断;
案例2:printf(“两个”)中断;
案例3:printf(“三个”);中断;
案例4:printf(“四”)中断;
案例5:printf(“五个”);中断;
案例6:printf(“六个”);中断;
案例7:printf(“Seven\n”);break;
案例8:printf(“八”);中断;
案例9:printf(“Nine\n”);break;
案例0:printf(“零\n”);中断;
}
} 
我使用一个介于0和9之间的数字,它工作正常,但是一个比这个数字大的数字,它什么也不做

我不能解决的第一个问题是,在一个数字中,得到数字的位置。 我相信在我的代码中,中断并不是什么都不做

对不起,如果我不能更好地解释我,但英语不是我的母语

问候,

法沃拉斯

##############################进行中解决方案(如果数字%10给出0,则不起作用)
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int num; printf("Please insert a number: "); scanf("%d", &num);
    int i,digit;
    for (i = 0; num%10!=0;i++){
        digit = num % 10;
        switch(num){
        case 1:printf("One\n");break;
        case 2:printf("Two\n");break;
        case 3:printf("Three\n");break;
        case 4:printf("Four\n");break;
        case 5:printf("Five\n");break;
        case 6:printf("Six\n");break;
        case 7:printf("Seven\n");break;
        case 8:printf("Eight\n");break;
        case 9:printf("Nine\n");break;
        case 0:printf("Zero\n");break;
        }
        num = num / 10;
    }
} 
#包括
#包括
int main()
{
int num;printf(“请插入一个数字:”;scanf(“%d”,&num);
int i,数字;
对于(i=0;num%10!=0;i++){
数字=num%10;
开关(num){
案例1:printf(“一次”)中断;
案例2:printf(“两个”)中断;
案例3:printf(“三个”);中断;
案例4:printf(“四”)中断;
案例5:printf(“五个”);中断;
案例6:printf(“六个”);中断;
案例7:printf(“Seven\n”);break;
案例8:printf(“八”);中断;
案例9:printf(“Nine\n”);break;
案例0:printf(“零\n”);中断;
}
num=num/10;
}
} 

数字
123
100+20+3
1*10^2+2*10^1+3*10^0

您需要将各个数字与输入隔离开来

提示:使用
/
%
运算符

 12345 % 10 ==> 5
 12345 / 10 ==> 1234

 1234 % 10 ==> 4
 1234 / 10 ==> 123

 123 ... ... ...

如果输入的数字较大,
num
正好包含该数字,即您的案例(
0
9
)中没有一个与
num
的值匹配

因此,您必须逐位“遍历”数字。如果取模10:
12345%10==5
,则可以提取最后一个数字。此外,您可以通过除以10来截断最后一个数字:
2345/10==234
(由于整数除法)


因此,您必须编写一个循环,从
num
中提取单个数字,然后对每个数字应用大小写区分。

在基数10中,数字
12345
实际上是
1*10000+2*1000+3*100+4*10+5*1
。因此,您可以通过计算数字除法的剩余部分来获得数字的最后一位E数由<代码> 10 > /代码>而红利将是该数的最大值。因此,“12345=1234×10+5 <代码>。< < /代码> %>代码>运算符被用来计算除法的剩余部分,因此< /代码> 12345% 10 >代码>等于< /代码> 5 './p>
然后,你只需在数字不为零时循环,在每一步取余数,显示数字,然后除以数字。

+1对于措辞恰当的问题,你所谓的解决方案是错误的解决方案。如果数字为666或1000,会发生什么情况?好的。发现错误。谢谢。当问题被标记为
H时,将尝试解决此问题OMWorks<代码>请考虑不要给代码提供更多的指针来帮助发问者编写代码。顺便问一下,如果用户输入了数字<代码> 0 /代码>,那是什么?- 1:如果你要编写家庭作业问题的代码,至少写出好的代码,这样学生就可以通过复制来学习一些东西:<代码>主< /代码>应该是R。eturn
int
;默认情况下输出是行缓冲的,因此您应该使用换行符或
fflush(stdout)终止字符串;
打印后;
scanf
返回值应该被检查;您错过了num的验证
void main (void){  
    int num;  
    int factor=10;  
    printf("Please insert a number: "); scanf("%d", &num);  
    while(num>0){  
        switch(num%factor){  
            case 1:printf("One\n");break;  
            case 2:printf("Two\n");break;   
            case 3:printf("Three\n");break;  
            case 4:printf("Four\n");break;  
            case 5:printf("Five\n");break;  
            case 6:printf("Six\n");break;   
            case 7:printf("Seven\n");break;  
            case 8:printf("Eight\n");break;  
            case 9:printf("Nine\n");break;  
            case 0:printf("Zero\n");break;  
        }  
        num=num/factor;  
    }  
}