注册 登录
编程论坛 C++教室

新人求教啊

寻竹而过 发布于 2012-10-25 17:30, 595 次点击
输入一负数,求其平方,要求输出时需要把负数用括号括起来,即输出显示为(-5)*(-5)=25类型的,不知道怎么弄啊

15 回复
#2
超级菜鸟手2012-10-25 18:05
#include <iostream>
using namespace std;

int main(){
    int num;
   
    cout<<"Enter an integer: ";
    cin>>num;
   
    if(num < 0){
           cout<<"("<<num<<") * ("<<num<<") = "<<(num*num)<<endl;
           }
    else
        cout<<num<<" * "<<num<<" = "<<(num*num)<<endl;
        
    system("PAUSE");
    return 0;
   
}

你说的是 这样吗?
#3
寻竹而过2012-10-25 18:15
额,哥,我才新学,你弄这东西还看不懂啊
完整的题目是
从键盘输入一个数,输出该数的平方。输入输出格式如样例所示。如果输入的是整数,要是平方也是整数输出;如果输入的是实数,
输入时最多保留到小数点后两位,输出的平方和要求精确。
--------------------------------------------------------------------------------

样例输入:
3
3.14
3.2
-5


--------------------------------------------------------------------------------

样例输出:
3*3=9
3.14*3.14=9.8596
3.2*3.2=10.24
(-5)*(-5)=25

我就【如果是负数,输出时需要把负数用括号括起来。】这东西不会弄



 

#4
超级菜鸟手2012-10-25 18:20
只需要加这个 就行了

if( num < 0){ 。
           cout<<"("<<num<<") * ("<<num<<") = "<<(num*num)<<endl; ////如果你输入的是负数 系统就会这样输出
           }
else  
cout<<num<<" * "<<num<<" = "<<(num*num)<<endl;  //或者 系统就会这样输出
#5
寻竹而过2012-10-25 18:22
没别的方法吗,你说的我还没学过
#6
超级菜鸟手2012-10-25 18:27
没了吧 必须用C++选择结构if。。。else
#7
寻竹而过2012-10-25 18:31
#include<stdio.h>
#include<math.h>
int main()
{
    double a;
    int t;
    while(scanf("%lf",&a)!=EOF)
    {
    t=(int)a;
    if(t-a==0)
    printf("%d*%d=%d\n",t,t,t*t);
    else
    {
        if(a>0)
        printf("%f*%f=%.2f\n",a,a,a*a);
            else
        printf("")        //就这不知道怎么弄
    }
    }
return 0;
}
#8
超级菜鸟手2012-10-25 18:33
#include<stdio.h>
#include<math.h>
int main()
{
    double a;
    int t;
    while(scanf("%lf",&a)!=EOF)
    {
    t=(int)a;
    if(t-a==0)
    printf("%d*%d=%d\n",t,t,t*t);
    else
    {
        if(a>0)
        printf("%f*%f=%.2f\n",a,a,a*a);
            else
        printf("(-%f)*(-%f)=(%.2f\n",a,a,a*a)   ;     //¾íÕa2»ÖaμàÔõÃ′Åa
    }
    }
return 0;
}
#9
寻竹而过2012-10-25 18:34
我用字符表示(),但好像没用
#10
超级菜鸟手2012-10-25 18:36
没用? 可是我的能跑到 。。。
#11
寻竹而过2012-10-25 18:37
(%.2f\n有单括号吗,没得话我也试过,但没用
#12
寻竹而过2012-10-25 18:40
但输入-5,结果没出现(-5)*(-5)=25
#13
寻竹而过2012-10-25 18:45
#include<stdio.h>
#include<math.h>
int main()
{
    double a;
    int t;
    char c1,c2;
    c1=40;
    c2=41;
    while(scanf("%lf",&a)!=EOF)
    {
    t=(int)a;
    if(t-a==0)
    printf("%d*%d=%d\n",t,t,t*t);
    else
    {
        if(a>0)
        printf("%f*%f=%.2f\n",a,a,a*a);
            else
        printf("%c%f%c*%c%f%c=%.2f\n",c1,a,c2,c1,a,c2,a*a);
    }
    }
return 0;
}这样为什么也不行啊
#14
寻竹而过2012-10-25 20:27
恩,知道了,是前面逻辑错误,都运行到第一个if上了
#15
寻竹而过2012-10-25 20:49
正解
#include<stdio.h>
#include<math.h>
int main()
{
    double a;
    int t;
    while(scanf("%lf",&a)!=EOF)
    {
        t=(int)a;
        if(t-a==0 && a>=0)
        printf("%d*%d=%d\n",t,t,t*t);
        else
        {
        if(a>=0)
        printf("%g*%g=%g\n",a,a,a*a);
        else
        printf("(%d)*(%d)=%g\n",t,t,a*a);     
        }
    }
return 0;
}
#16
超级菜鸟手2012-10-25 22:53
1