暗小暗 发表于 2019-2-21 19:38:16

麻烦大家了,能编译出来,但输出的不对

#include<stdio.h>
int main()

{
        int i;
        int gw,sw,bw,sum;
        printf("请输入一个100到999的数:");
        scanf("%d",&sum);
        gw=i%10;
        sw=i/10%10;
        bw=i%100;
        sum=gw+sw+bw;
        printf("各位数上的和是:%d",sum);
       
       
       
       
       
       
        return 0;
}

sunrise085 发表于 2019-2-22 10:26:21

你的i没有赋值啊。是不是scanf("%d",&sum)这句写错了,你是打算写成scanf("%d",&i)吧?

行客 发表于 2019-2-22 12:27:00

sunrise085 发表于 2019-2-22 10:26
你的i没有赋值啊。是不是scanf("%d",&sum)这句写错了,你是打算写成scanf("%d",&i)吧?

对,他应该是这个目的
#include<stdio.h>
int main()

{
      int i;
      int gw,sw,bw,sum;
      printf("请输入一个100到999的数:");
      //scanf("%d",&sum);
      scanf("%d",&i);
      gw=i%10;
      sw=i/10%10;
      bw=i%100;
      sum=gw+sw+bw;
      printf("各位数上的和是:%d",sum);
      
      
      
      
      
      
      return 0;
}

hwq731364764 发表于 2019-2-22 17:20:57

1.首先你的程序里i没有赋值,应该是scanf("%d",&i);
2.你的百位数字求法不对,可以举个简单例子,修改后应该是bw=i/100%10;
3.对于制定输入应该检查输入是否符合规范,建议增加检查规范
修改后程序如下:
#include<stdio.h>
int main()
{
    int i;
    int gw,sw,bw,sum;
    printf("请输入一个100到999的数:");
    scanf("%d",&i);
    if( i>99 && i <1000)
    {
      printf("输入的数字是:%d\n",i);
      
      gw=i%10;
      printf("个位数是:%d\n",gw);
      
      sw=i/10%10;
      printf("十位数是:%d\n",sw);
      
      bw=i/100%10;
      printf("百位数是:%d\n",bw);
      
      sum=gw+sw+bw;
      
      printf("各位数上的和是:%d",sum);
        }
    else
    {
      printf("输入非法");
        }   
      
    return 0;
   
}

暗小暗 发表于 2019-2-22 18:02:14

sunrise085 发表于 2019-2-22 10:26
你的i没有赋值啊。是不是scanf("%d",&sum)这句写错了,你是打算写成scanf("%d",&i)吧?

好的,谢谢,怪不得。。。

暗小暗 发表于 2019-2-22 18:03:13

hwq731364764 发表于 2019-2-22 17:20
1.首先你的程序里i没有赋值,应该是scanf("%d",&i);
2.你的百位数字求法不对,可以举个简单例子,修改后应 ...

谢谢,麻烦了,我知道了。{:5_103:}
页: [1]
查看完整版本: 麻烦大家了,能编译出来,但输出的不对