C程序问题,帮忙解答一下

来源:百度知道 编辑:UC知道 时间:2024/06/21 04:54:54
为什么程序运行一次后会出来两个A.十转二
B.十转八
C.十转十六
#include<stdio.h>
#define N 10
void main()
{
int x,i=0;
char c;
int a[N]={0};
printf("A.十转二\n");
printf("B.十转八\n");
printf("C.十转十六\n");
c=getchar();
while(c!='\0')
{

switch(c)
{
case'A':
{

printf(" 十进制转为二进制\n");
printf("输入十进制的数:");
scanf("%d",&x);
while(x>0)
{
a[i]=x%2;
i++;
x/=2;
}
for(;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}break;
case'B':
{
printf(" 十进制转为八进制\n");
printf("输入十进制的数:");<

你的case‘c’下,又有printf("A.十转二\n");
printf("B.十转八\n");
printf("C.十转十六\n");
c=getchar();
所以程序有执行一次,修改:去掉case‘c’下的
printf("A.十转二\n");
printf("B.十转八\n");
printf("C.十转十六\n");

你是打印了两次呀!

唉!我的时间不多呀,对不起了