gpt4 book ai didi

c - 将从第一个到最后一个的数字打印为文本,而不使用 C 中的数组、递归或二进制运算

转载 作者:行者123 更新时间:2023-11-30 15:09:36 25 4
gpt4 key购买 nike

我需要打印从第一个到最后一个的数字,而不使用数组、二进制运算或递归。此外,每个数字都应作为文本打印。

#include <stdio.h>

int main () {
int a,x;

printf("Give a number : ");
scanf("%i", &a);
do {
switch ( x % 10 ) {
case 0 :
printf("zero ");
break;
case 1 :
printf("one ");
break;
case 2 :
printf("two ");
break;
case 3 :
printf("three ");
break;
case 4 :
printf("four ");
break;
case 5 :
printf("five ");
break;
case 6 :
printf("six ");
break;
case 7 :
printf("seven ");
break;
case 8 :
printf("eight ");
break;
case 9 :
printf("nine ");
break;
default:
printf("Error \n");
break;
}
x /= 10;
} while ( a );
printf("\n");
}

123 的输出是三二一。理想的:一二三。有什么想法吗?

最佳答案

在将数字传递给 Switch 语句之前反转该数字。看看下面的程序是否有效。我还没有测试过。

#include <stdio.h>

int main () {
int a, temp, reverse = 0;



printf("Give a number : ");
scanf("%i", &a);
temp = a;

while (temp != 0)
{
reverse = reverse * 10;
reverse = reverse + temp%10;
temp = temp/10;
}

do {
switch ( reverse % 10 ) {
case 0 :
printf("zero ");
break;
case 1 :
printf("one ");
break;
case 2 :
printf("two ");
break;
case 3 :
printf("three ");
break;
case 4 :
printf("four ");
break;
case 5 :
printf("five ");
break;
case 6 :
printf("six ");
break;
case 7 :
printf("seven ");
break;
case 8 :
printf("eight ");
break;
case 9 :
printf("nine ");
break;
default:
printf("Error \n");
break;
}
reverse /= 10;
} while ( reverse );
printf("\n");
}

关于c - 将从第一个到最后一个的数字打印为文本,而不使用 C 中的数组、递归或二进制运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36583795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com