我用c++编了个程序,能将一个3位数的个位与百位交换位置,可是为啥会闪退?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我用c++编了个程序,能将一个3位数的个位与百位交换位置,可是为啥会闪退?相关的知识,希望对你有一定的参考价值。

#include<iostream>
using namespace std;
int main ( )


int a,b,c,d,x,A,B,C,all;
cout<<"请输入一个3位数"<<endl;
cin>>x;
x=x/100;
double floor(double x);
cin>>a;
x=x-100*a;
double floor(double x);
cin>>b;
x=b/10;
double floor(double x);
cin>>c;
d=b-c;
A=100*d;
B=10*c;
all=A+B+a;
cout<<"调换后就是"<<all;
cout<<"a";


//输入字符不闪退,可数字就要闪退。

你写的程序是要调用函数么?没太看懂你的程序,所以自己写了一个。不懂可以追问。

#include <iostream>
using namespace std;
int main()
        int t,a,b,c;
        cout<<"请输入一个三位数"<<endl;
        cin>>t;
         a=t/100;
         b=(t/10)%10;
         c=t%10;
        
        cout<<"调换后是"<<c<<b<<a<<endl;
        system("pause");//这句是用来暂停的。如果没有暂停请继续追问

参考技术A 你的问题在于,a,b,c均是整型数据,而你认为每次输入一位,按照你的程序,这三次输入都需要输入一位数字然后回车或空格再输入下一个数据,这样肯定与题目要求不符。另外,double floor(double x);这句仅是个函数调用说明,没有真正调用函数(即使参数名也叫x),可以不写,如果想用此函数,在程序前面加个语句:#include<math.h>即可。
请考虑:输入一个整数给a,然后将其百位和个位通过计算得出来再通过计算进行交换
输入:cin>>a;即可
计算百位个位:b=a%1000/100; c=a%10; //计算后b存放百位上的数字,c存放个位
交换百位和个位:a-=b*100; a-=c; a+=c*100; a+=b;
这样如果你即使输入的不是3位数也能交换。追问

我已解决谢谢

参考技术B #include<stdio.h>
main()
int num,num1,num2,num3;
printf("请输入一个三位正整数:\n");
scanf("%d",&num);
num1=num%10;//获取个位
num2=num%100/10;//获取十位
num3=num/100;//获取百位
printf("个位与十位交换后的数字:%d\n",num1*100+num2*10+num3);

我不懂C++,但是大概看懂你的程序。感觉你的变量很多,double floor(double x);这个函数出现那么多次作用是什么?
这是C编写的,你参考下,一起学习。
参考技术C #include<iostream>
using namespace std;
int main ( )

int num,a,b,c,result;
cout<<"请输入一个3位数"<<endl;
cin>>num;
a=num/100;
b=num/10%10;
c=num%10;
result=a+b*10+c*100;
cout<<result<<endl;

参考技术D 0[-090-这、]]

需要暂停,在最后加上一句 cin>>a;
就可以了追问

没闪退了,可是没输出结果

追答

设计过程没看动
大致过程是把这个数的各个位都提取出来再组成新数

int x;
cin>>x;
count>x;

输入一个三位数,把个位和百位对调后输出

Description

输入一个三位自然数,然后把这个数的百位数与个位数对调,输出对调后的数

Input

输入一行,只有一个整数x(100<=x<=999)。
 

Output

输出只有一行,包括1个整数。

Sample Input 

123

Sample Output

321
 
太水了。。。
AC代码:
 1 import java.util.Scanner;
 2 
 3 public class Main {
 4     public static void main(String[] args) {
 5         Scanner sc = new Scanner(System.in);
 6         String str = sc.next();
 7         int num = Integer.parseInt(str.charAt(2)+""+str.charAt(1)+""+str.charAt(0));
 8         System.out.println(num);
 9     }
10 }

 

以上是关于我用c++编了个程序,能将一个3位数的个位与百位交换位置,可是为啥会闪退?的主要内容,如果未能解决你的问题,请参考以下文章

python输入一个三位数 输出百位十位个位数字的二进制数?

C#编程:输入一个4位数的正整数,编写程序,输出这个数的千位,百位,十位,个位。

c语言 输入任意三位数 分离个十百位

C语言编程题目

如何用c语言表示一个三位数的个十百位

2. 三位数反转