兰州大学萃英电子联盟 2022-11-10 10:30 采纳率: 88.9%
浏览 29
已结题

输入字母后自动跳出循环

编写一个十六进制转十进制的程序:

#include<stdio.h>
#include<math.h>
#define a 10
#define b 11
#define c 12
#define d 13
#define e 14
#define f 15
int main()
{
    int  h[100],y=0,z,k,i,j;
    printf("请输入数字的位数\n");
    scanf("%d",&k);
    printf("请从低位到高位输入数字:\n") ;
    for(i=0;i<=k-1;i++)
    {
    scanf("%d",&z);
    h[i]=z;
    }
    for(i=0;i<=k-1;i++)
    {
     h[i]=h[i]*pow(16,i);
    }
    for(i=0;i<=k-1;i++)
    y+=h[i];
    printf("十进制数为%d",y);
    return 0;
}

对于1-9的数结果十正常的,但是一输入a-f中的一个就会自动跳出循环并计算.例如输入25a4

img

本人初入c可能对某些特点不太了解
希望有高人指点.

  • 写回答

2条回答 默认 最新

  • 心寒丶 优质创作者: 编程框架技术领域 2022-11-10 10:41
    关注

    %d只能接收int,输入字符就出错了

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月22日
  • 创建了问题 11月10日