C语言程序结果小问题

作者&投稿:从骂 (若有异议请与网页底部的电邮联系)
C语言程序结果题~

#define MACKET(a,b) a>b?a&b:a*b //意思是MACKET(a,b)代替a>b?a&b:a*b。这时可以将MACKET()看成是一个函数:int MACKET(int a,int b)
{
return a>b?a&b:a*b;
}
a>b?a&b:a*b;的意思是:如果a>b成立,就取冒号前面的a&b的值,不成立就取冒号后面a*b的值;//?:为三目运算符,如果不懂就看参考是书。
所以最后结果就为:36

min=a[i][0];t=0;应该在每次比较该行时重新赋值,因此应该放到外层循环中,修改的程序如下: #include #define num 5int main(int argc, char* argv[]){ int i,j,min,t,k; int m=0; int a[num][num]; for(i=0;i<num;i++) for(j=0;j<num;j++) scanf("%d",&a[i][j]); for(i=0;i<num;i++) { min=a[i][0]; t=0; for(j=1;j<num;j++) { if(a[i][j]<min) { min=a[i][j]; t=j; } } for(k=0;k<num;k++) { if(min<a[k][t]) break; } if(k==num) { printf("马鞍数为:%d,第%d行,%d列
",a[i][t],i+1,t+1); } else m++; } if(m==num) printf("没有马鞍数!
");}

100 30 50
全局变量x被赋值30作用域为从定义位置开始到程序结束。
语句块定义的x被赋值100作用域为从定义位置开始到语句块结束。
两个x作用域重叠,但在语句块中定义的变量会屏蔽外部的变量。
所以传入sub()函数的x是100。100>50?100:50 的结果是100。
因此第一个输出是100。
而语句块变量作用域只在语句块内,退出语句块会失去作用(内存空间被释放)因此第二个输出语句起作用的是全局变量x所以结果是30,50。

#include<stdio.h>
int x=30 , y=50 ;
sub(int x , int y )
{
y=x>y?x:y;
return y ;
}
main()
{
{
int x=100;
printf("%d,",sub(x,y));
}
printf("%d,%d\n",x,y);
}

程序需要修改 x两次被定义main中int x=100应该改成x=100
sub(int x , int y )的意思是输出x y中较大的一个
结果应该为 100 100 50
源程序应该改成
#include<stdio.h>
int x=30 , y=50 ;
int sub(int x,int y )
{
y=x>y?x:y;
return y ;
}
int main()
{
int x=100;
printf("%d,",sub(x,y));
printf("%d,%d\n",x,y);
return 0;
}

该程序不能运行,谢谢


c语言写程序结果的小问题
include <stdio.h> define FUDGE(y) 2.84+y define PR(a) printf("%d",(int)(a))define PRINT1(a) PR(a);putchar('\\n')main(){ int x=2;PRINT1(FUDGE(5)*x);} 对于以上程序 结果应该是12 要说明的是,FUDGE(y)等不是普通的函数,而是预编译宏,执行时不能按一般的算法思维 ...

c语言 下列程序执行后的输出结果是(小数点后只写一位)
选A 20\/3中,20和3都是整型常量,所以20\/3==6。d=20\/3,那么d==6.000000,f也是一样。但是,如果这么写:d=20.0\/3,那么d==6.666667。i==l==6。希望对你有帮助。有不明白的可以练习我。

大一C语言.运行程序输出结果
你这个程序的问题在于:fun2应该放到fun1的前面去 因为你在fun1里面用到了fun2函数,这样的情况,要么fun2定义在fun1前面,要么在fun1之前加fun2的函数声明 然后说这个程序如果可以正常运行的结果是:(一步一步给你解释)fun1里面 a+=a 结果a=22 b+=b 结果b=38 c=fun2(22,38)跳...

c语言程序题:输出结果(小数点后只保留一位)main(){double d;float f...
需要注意的是:“\/”,对两个整型数据做除法运算,得到的永远是整数(结果相当于取整)这里20\/3=6,等式相当于:i=l=f=d=6,右边赋值给左边,i,l都是整型,所以还是6,f,d都是浮点数,所以是6.0

C语言小问题
原因是:计算机在给出结果时 是不需要加前缀的。而在赋值时需要加前缀。例如:int a;a=011; \/\/相当于赋值a=9,之所以加前缀“0”,是为了告知计算机0后面的数是八进制的数,若没有前缀“0”,计算机就自然而然地将11认定为十进制。printf("%o",a); \/\/输出11,因为你的输出格式符已经规定好...

C语言求教。一个小小的编程问题,在线等
2015-06-05 求问C语言编程问题,在线等!!! 2 2015-04-27 C语言编程题求教!!在线等,谢谢大家了。 2014-06-02 c语言编程问题,在线等。 1 2015-02-14 C语言小程序的一个小问题,在线等 ··· 2016-01-23 C语言编程问题,求解,在线等 2015-09-17 C语言编程问题,急!在线等! 2015-12-19 C语言...

我用C语言写了个程序 可以运行 但是得不到结果 求解呀·
你得不到结果,不知道是不是你的程序还没有运行完的缘故,for(n=1;n<=1000000000;n++)的循环次数太多了。其他的我就不清楚了。还要提醒你一下的是你的变量denominator,变量名字母太多了,写程序时要做到变量名简明,能看懂就行。

一道c语言小问题 求解
运行结果是:1,2 首先是 k++&&n++>2 k++是先用k值,然后在将k值加1.就是说,先判断k是否是真(不为0),因为k是假(是0),所以不会计算&&后面的表达式。所以n没有加1. (k++&&n++>2)表达式的值为假,退出循环。不知道你明白我说的嘛?

请帮忙看一下这个C语言程序,出了点小问题。 \/*创建一个包含10个元素的...
void main() \/\/首先你的函数并没有返回值 { int x[10],temp;int i,k;printf("请输入10个数为各个元素赋值:");for(i=0;i<=9;i++) \/\/数组的下标是从零开始的啊 { scanf("%d",&x[i]);} printf("\\n这10个数按照从大到小排列顺序为:");for(i=0;i<9;i++) \/\/...

C语言的输出问题,怎么回事?
我碰到的是这样的题 下列程序段的输出结果为() float k=0.8567;printf("%06.1f%%",k*100); A.0085.6% B.0085.6%% C.0085.7% D..857 答案是C 06.1f中的6是指输出域宽为6,即输出项输出时所占的列数为6,如果输出数据的宽度小于6,在域内向右对齐,左边多余位补空格,这儿因为6有...

环县13734825750: C语言结果小问题
语彬骨痨: 因为你for(i=1;i < 6;i++)i<6;只能 循环5次!所以只出5个出来! 你把改成i<=6,就行了

环县13734825750: c语言小程序输出结果问题
语彬骨痨: 上面说的对哦! #include<stdio.h>void main(){ char ch[7]={"12ab56"};int i,s=0;for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2) <---第一次执行是字符1,for中的条件成立了,执行循环,可当第二次的时候,i+2=2,是字符'a'了,条件ch[i]>='0'&&ch[i]<='9'不成...

环县13734825750: C语言一个程序的结果问题
语彬骨痨: 我想你是没分清楚表达式的值和变量的值 if(n++<=ch--)中n的值是11了,但n++这个表达式的值是10,也就是n的值 所以这句就等价于下面两句: x=n++; if(x<=ch--); /*假设x是新定义的一变量*/ 我想写成上面的这么两句的话,你就明白了吧 或者我这么写if((x=n++)<=ch--) 这下清楚了吧?如果还有不清楚,可追问~~

环县13734825750: C语言的小问题,怎么看都没错啊,怎么算出来不对呢,大家帮看看哈 -
语彬骨痨: 你的这个程序存在几个问题1,a,b.c的变量类型不正确,为了计算结果的精度要统一为float.2,一元二次方程有实数解的条件没有给出.下面我把你的程序...

环县13734825750: 一个C语言程序的小问题.
语彬骨痨: (a>='A' && a<='Z') ? (a+32):a,这本身就相当于一个if语句了,你要把原来的代码改成if语句的话,从这句下手就行了,下面是改好的,你参考一下 #include<stdio.h> void main() { char a; printf("请输入一个字母:\n"); scanf("%c",&a); if (a>='A' && a<='Z') a+=32; printf("%c\n",a); }

环县13734825750: C语言的小问题 -
语彬骨痨: 主要是两个原因导致我们使用int c, 再c=getchar()1. char到底是unsigned char还是signed char是由编译器决定的(有无符号不同编译器可能不一样).假如是unsigned,那么便无法表示负数,而EOF一般是-1.这会导致上述比较永远不可能成...

环县13734825750: C语言小白 照着书本写了次程序 结果发现运行结果不对 大神帮忙看看问题出在哪 -
语彬骨痨: scanf ("%f%F", %f要区分大小写,应该是两个小写的f....

环县13734825750: C语言问题小问题 -
语彬骨痨: 问题1:k*=n%10化为 k=k*(n%10)问题2:ch如果是char类型的,只能赋值一个字符,如果是char*类型的或字符数组,请把单引号该为双引号.问题3:for循环语句中,意义如下for(起始条件,结束条件,执行...

环县13734825750: C语言的小问题 -
语彬骨痨: 楼上不对 while(n++<=2);printf("%d",n); while语句后有分号.所以printf("%d",n);并不是循环体. 循环结束之后再打印n的值结果为4, 过程: n=0满足循环条件,n++ n=1满足循环条件,...

环县13734825750: c语言,程序执行结果.小空格的问题 我没看懂啊this is a test program.有空格啊 那一句是执行消空格的? -
语彬骨痨: 读取一个字符 ch=getchar(); 如果这个字符不是空格 if(ch!=' ') 输出这个字符 putchar(ch); 显然,是空格就不输出

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