一道c的编程问题。(要求输入一个数,如果是正数就输出,如果是负数就输出他的绝对值)!

作者&投稿:牛饺 (若有异议请与网页底部的电邮联系)
fpc:输入一个数,如果是正数,就输出它的平方根;如果是负数,就输出它的绝对值~

帮你优化了。如果不需要你可以自己把while循环去了。
var a:extended;
b:qword;
c,n:string;
m:integer;
begin
while true do
readln(a);
if a=0then begin writeln(0);continue;end
else if a<0then a:=abs(a)
else begin a:=sqrt(a);write('±');end;
b:=trunc(a*100000000);
str(trunc(a),c);
str(b,n);
insert('.',n,length(c)+1);
for m:=length(n)downto 1do
if n[m]>'0'then break
else if n[m]='0'then delete(n,m,1)
else begin delete(n,m,1);break;end;
writeln(n);
end;
end.

#include
int main()
{
int num;
printf("Please input a integer:");
scanf("%d",&num);
if(num>=0)
printf("%d",num);
else printf("
%d
",-num);
}

求绝对值的话:有小数的(即浮点型)用fabs()函数,整数用abs()
不是你想的那样加个-号是不行的!fabs()函数包含在#include<math.h>中
修改如下:
#include<stdio.h>
#include<math.h>
int main()
{
double x;
scanf("%lf",&x);
if(x>=0)

printf("%lf",x);

else
{
x=fabs(x);
printf("%lf",x);
}
return 0;
}

你用的是什麼编译器阿?
错误信息是什麼

你这个代码里面还有个问题
if(x>=0) //浮点数是不能这样与0必较的

如果判"x == 0.0"
x> -极大值 && x< +极小值
fabs(x) < 极小值(趋近於0)

这个程序完全正确,在DEV C++下编译通过,而且DEV C++是很标准的,我帮你简化下程序
#include<stdio.h>
main()
{
float x;
scanf("%f",&x);
printf("%f",x>=0?x:-x);
}

#include<stdio.h>
main()
{
float x;
scanf("%f",&x);
if(x>=0)
printf("%f",x);
else {
x=-x;
printf("%f",x);
}
}


一道C语言的编程题,兔子洞的问题。
int main(){ \/\/Hole表示20个三洞 ,Hole【21】是为了数组下标从1开始,方便对题目的理解 \/\/初始化为0,表示还没有被 灰狼搜索 int Hole[21] = {0};int i = 1,j;\/\/进行15次循环,表示灰狼搜索了15次 for(j = 1; j <= 15; j++){ Hole[i] = 1; \/\/将洞i设为1,表示编号为...

请问一下大佬们,这道C语言编程题我为什么错,还有这些监测点的划分依据是...
这段代码的问题在于图中红色框内jc数据类型不合适,不能定义为int,需为double。解释:C语言中一般int为32位,最大只能表示12的阶乘,超过12就会产生溢出,而题目中明确说明了数据会在double范围内,就是有可能超过int所表示范围。需要改为double类型。监测点划分依据:Cmn表示从n中选m个有多少情况,通...

C语言编程题目三道
c); printf("%s\\n",str); return 0;}void dele(char *str,char c){ int len=strlen(str),i,j; for(i=0;i<len;i++) { if(str[i]==c) { for(j=i;j<len-1;j++) { str[j]=str[j+1]; } str[len-1]=0; len--; i--;...

帮看看两道c语言编程题目吧,或者直接给翻译一下也行。。
第一题:编程实现100位以内的20进制数加法。20进制数的数字为0~9(即10进制的10个数字),外加字母a~j(作大于9的10个数字11~19,就像16进制里以a~f作大于9的6个数字11~15一样)。程序的输入为多行20进制数,程序的输出为两两相加后的20进制数。样本输入输出见Sample Input和Sample Output。...

两道c语言编程,能不能帮忙分析一下结果为什么不同?
其他值的改变使a与b不同好理解不赘述。所以结果应该是Zhao,m,290,Zhao,f,350。第二道:因为STU中的char name[10]声明的name是个数组,当b=a操作后b就是a的拷贝,但后面对b中的数组的操作不会影响对a中的数组。所以输出结果应该是Zhao,m,290,Qian,f,350。余同上。指针和数组拷贝后都有两个...

C语言在编程的时候应注意什么问题?
C语言程序设计入门学习六步曲 笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因有三个: 一、所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的...

几道简单的C语言编程题,请高手帮忙
} 3、输入三个整数,求其中的最大值并输出。include<stdio.h> void main(){ int a,b,c;printf("输入三个数:");scanf("%d%d%d",&a,&b,&c);if(a>b&&a>c)printf("最大值为:%d",a);else if(b>a&&b>c)printf("最大值为:%d",b);else printf("最大值为:%d",c);} ...

C语言编程题
\/\/输入15个学生的信息void insertTest(STU *stu);\/\/测试,用随机数代替输入,我懒得输入那么多成绩,你要手输,调用insertSTU替换该函数void printfSTU(STU *stu);\/\/按输入顺序打印15名学生7模块成绩 及 每个模块前三名的成绩int main(){ STU stu[stuNum];\/\/定义15个学生 \/\/ int i,...

C语言问题编程问题?
int main(){ int i,j,n=-1;float scores[30],sum=0,temp;printf("请输入n的值(0~30):");while(n<0 || n>30) scanf("%d",&n);if(!n) return 0;for(i=0;i<n;scanf("%f",&scores[i]),sum+=scores[i],i++)printf("请输入学生%d分数:",i+1);printf("%d名学生的...

大学福音经典编程题适用于专升本
C语言100道适用专升本超有用 1.十进制数转任意进制数 2.数字三角形 3,编程求某年第 n 天的日期。 4.求周岁 5.编程求出使该算式成立时的这两个数 6.功能:(较难不用看) 编程求任意给两个日期(年 月日)相差的天数。 7.把一个数的二进制奇数位和偶数位交换 8.题目要求找出数组中的两个单身狗 9,数...

恩施市13427963130: 超级精练的一道C语言编程题要求输入一个整数范围在0到95之间1.
郟琬滴加: #include "stdio.h" void main(){ long int num,temp,tmp=10; int i,j,total=0; printf("请输入一个整数:"); scanf("%d",&num); temp=num; while(temp!=0){ temp=num/tmp; tmp*=10; total++; } printf("整数位数为:%d\n",total); tmp/=100; temp=10; printf("整数反序为:"); for(i=1;i 全部

恩施市13427963130: 一道c的编程问题.(要求输入一个数,如果是正数就输出,如果是负数就输出他的绝对值)! -
郟琬滴加: 求绝对值的话:有小数的(即浮点型)用fabs()函数,整数用abs() 不是你想的那样加个-号是不行的!fabs()函数包含在#include<math.h>中 修改如下: #include<stdio.h> #include<math.h> int main() { double x; scanf("%lf",&x); if(x>=0) printf("%lf",x); else { x=fabs(x); printf("%lf",x); } return 0; }

恩施市13427963130: 一道c语言数组编程题 编写程序求一个整数各位数字之和. 要求: 1) 输入一个整数. 2) 把这个整数各位数字 -
郟琬滴加: 这道题的关键在于分离数字,分离方法可以用这种方法,比如,用119来实现分离,根据题目要求结果为1+1+9=11对吧,我们通过这样来分离,(1)用119%10,就是119除以10的余数是9对吧?聪明的你现在就应该发现9被分离出来了吧(2)...

恩施市13427963130: 用C语言写的一个程序:有一个已排好的数组,要求输入一个数后,按原来排序的规律将它插入数组中. -
郟琬滴加: 代码如下:#include<stdio.h> int main() { int a[20],i=0,n,x,k,j; printf("请输入一组顺序数(从小到大的顺序):"); while(~scanf("%d", &a[i])) { i++; if(getchar() == '\n') break; //在这判断,否则原先的第一个数字读不进去 } n=i; for(i=0;i<n;i++)...

恩施市13427963130: C语言编程 :编一个程序,输入一个数给出平方 -
郟琬滴加: #include<stdio.h> #include<iostream> main(){int n;scanf("%d",&n);printf("%d\n",n*n);system("pause"); return 0; }

恩施市13427963130: 编写一个 C语言程序,要求输入一个整数,就输出比输入值大10的所有整数, -
郟琬滴加: 程序如下: #include "stdioh"int main(void){int i;int acc=1;//用于存放阶乘printf ("请输入一个整数i=");scanf ("%d",&i);for(;i>0;i--){acc*=i;}printf("该数的阶乘为acc=%d ",acc);return 0;}运用for循环来求阶乘. 运行结果: 如求十的c语言:编写一个程序,要求输入一个整数,输出其阶乘

恩施市13427963130: 一道C编程题劳分析一下,谢谢!下列程序的功能是输入一个正整数,判
郟琬滴加: 这个程序有问题,虽然输出结果是正确的,但是运行的效率低,不是好的算法. i=2,就是从2开始,到i〈=x/2,循环,i++就是递增循环,相信for语句用法你是知道的. 至于为什么要到x/2(这有问题),是因为,你想素数就是只能被1或者本身整除的自然数.如果i到X的一半的时候,x都不能被i整除,再往后就更不可能整除了.对吧,细想想很好像明白的. 至于if(x%i==0) {y=0;break;是说,如果x能被i整除,程序就从for循环中跳出来,不再进行循环了.你看课本,有讲解break和continue用法和其区别的. 其实i没有必要循环到x/2,循环到x的平方根就够了,再往后循环就是浪费了 进一步交流,请留言给我

恩施市13427963130: 求一道C语言题目问题是:从键盘输入一个数字字符,要求改用数值形式输出,字符0的ascii的值为48 -
郟琬滴加: #include int main() { char ch; scanf("%c",&ch); printf("%d\n",ch - '0'); return 0; }

恩施市13427963130: 求解一道简单的C程编程题. 输入一个正整数n,编写一个程序,计算2+4+6+...+n的值 -
郟琬滴加: #include <stdio.h> int main(int argc, char *8argv) { int val =0 ; int sum = 0; int a = 0; int i = 0; printf("put in the number\n"); scanf("%d", &val); a = val / 2; for (i = 1; i <= a; i++) { sum += 2 * i; } if (0 != val % 2 ) { sum += val; } printf("2 + 4 + 6 +...+n result:%d\n", sum); return 0; }

恩施市13427963130: C语言编程 输入一个不多于九位的正整数,要求输出它是几位数 -
郟琬滴加: #include <stdio.h> void main() { int input=0,cnt=0,tmp=0; printf("请输入不多于9位的正整数:\n"); scanf("%d",&input); tmp = input; while(tmp>0) { cnt++; tmp = tmp/10; } printf("%d的位数是:%d\n",input,cnt); } 已经验证,结果正确

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网