我是初学C语言,看不懂你这题(看不懂的地方我标注了一下啊)
#includeint main(){ chars[ ]="GFEDCBA"; //一个字符串s int p=6; //p为6while(s[p]!=‘D’) //s[6]开始循环,即从A开始满足条件打印。接着是s[5]即B也满足,然后是s[4]即C也满足。然后是D不满足退出循环{ printf("%c ", s[p]); //打印s[p]字符p=p-1; } //p减少1,即往前面移动return 0;}输出是ABC,我看不懂程序意思,求每行注释。 还有一题: main(){ int n1,n2; //两个整数scanf("%d",&n2); //输入n2while(n2!=0) //当n2不为0{ n1=n2%10; //n1为n2的个位数字n2=n2/10; //n2/10消除掉个位printf("%d ",n1); } } //打印n1即n2的个位数字 //整个程序的含义就是将数字123打印成 3 2 1
main() {
int i;//定义一个整型变量i for(i=3;i<10;i++) /*循环输出3-10(不包括10),能被4整除的不被输出(即输出35679)*/ {
if(i%4==0)//判断能不能被4整除 continue;//可以被整除则跳过此次循环,比如当i=4的时候,判断能被4整除了,则执行到\
//执行到continue的时候,将跳过接下来要执行的,直接到i=5的情况。(和break区别)
else printf(“%d,”,i);//当i不被4整除,则输出。 }
}
//结果为:35679
//-----------------------------------------------------------
.main() { int x; x=3;//初始化x = 3 do { printf(“%d”,x--);//先输出X的值(3),再将X-1 }while(!x); //X 不等于0,所以!x 等于0,即跳出循环 }//结果为:3
//-----------------------------------------------------------------
main() { int a=8 , b=1;//定义并初始化a,ba=a+b;//a = 9b=a*b;//b = 9printf("%d,%d",a,b); }
//结果为:9,9
//--------------------------------------------------------------------------- fun(int a, int b)//定义一个函数,传入a,b两个参数(其实就是比较两个数的大小,把大的返回) { if(a>b) return (a);//如果a>b,就返回a Else return (b); }//否则(即b>=a),就返回b
main() { int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z);//分两步,第一,比较x和y,得到xy中最大的(显然y比较大为8),第二,把x,y中最大的(y)和2*Z比较(即8和2*6比较),显然2*z比较大为12,所以r=12
printf(“%d
”,r); }
//结果为:12
//------------------------------------------------------------------------
main() { int n; For(n=3; n<=10; n++) { if(n%5= =0)break;//break和continue的区别来了,break是直接跳出循环,continue是只跳过这次玄幻,比如n=5的时候,正好可以被5整除等于0,则执行break;就直接跳出循环了,而continue,则还会执行n=6,n=7的情况 Printf(“%d”,n); } }
//结果为:34
9&&(-1)因为两边都是真值(非零数),所以又可以看做1&&1,&&的两边都是真值,所以最终值为真,即结果为1
!(a>b)=!(3>4)因为(3>4)是错的,所以用0表示,又因为前面!,所以用1表示
(!c)因为c=5,不等于0,所以c是真值,前面加个!,就说明整体是假值,所以最后逻辑值为0
另外,扩展一下,对于这道题中的c,!!c的值应该为1。!!c=!(!c)
=(!0)=1。这也是通过上述解释得到的。
在做逻辑运算的时候除0以外的数 默认为1 0默认还是为0
所以上面的9&&(-1) 其实是1&&1 结果为1
!(3>4)为1 因为3>4为假 所以是0 然后取非 所以就为1
c=5 在逻辑运算时 认为是真 所以是1 所以!C就是假 所以是0
首先把优先级搞明白了,然后不为0就表示真,所以!x(其中x是一个不为0的数)就表示0了;如果X=0的话!X就表示为真了。这个挺有用,就像while(1)就可以用来表示一个死循环,当然也可以用while(x),x要不为0。等同于for(;1;)
只有为0表示假~
在C里面初了0的数都是真的,0是假的。9&&-1等价与 真&&真 结果就是真的了。!(3>4) ---> !(0) ---> 1 。1在非就是0了。
原因很简单!该法如下,不懂Hi我
该法一:
int max, max_row, max_col;
int min, min_row, min_col;
改为:
int max,max_row=0,max_col=0;
int min, min_row=0,min_col=0;
该法二:
if(max<data[i][j]) 改为 if(max<=data[i][j])
if(min>data[i][j]) 改为 if(min>=data[i][j])
如果对你有所帮助,请记得采纳最佳答案,谢谢!
你的串号我已经记下,采纳后我会帮你制作
答:循环);第二步:看懂每个语句的功能、含义和它的作用;第三步:试数(看不懂某一语句的功能,含义是什么,可以试着用所学知识去单独测试这个语句,尝试写分析过程,把自己当计算机一步步执行)。总结 初学者看懂c语言可以分三步进行,首先看懂程序的流程,然后看懂每个语句的功能,最后进行试数。
答:我可以明确地告诉你,你只要不搞高深的计算科学研究。你掌握基本的初中数学知识就够了。微积分对你学c没有任何作用。另外给点学习建议:1.学习兴趣最重要,最初不要去参加什么所谓的考试。什么级什么的都屁用没有。你水平到了以后自然就不怕这些了。2.c语言其实很难。说c比java简单的人估计是不懂...
答:第一个while先把a指向字符串的尾部;然后让a从后往前移动,遇见‘*’就置为‘\0’表示把‘*’删除;第二个while的终止条件就是碰到不为‘*’的字符!
答:我用文字解释一下吧,看看能不能清楚,提问的式子我都进行了加粗,希望能看得出来(图的话我觉得给出的图已经可以参考讲述的,可以结合我的文字看看)这个传递数组名称的函数,输入有两个,一个是数组,一个是数组长度 那么我们知道:如果传递的n是10,数组长度是10的话,它的元素的索引应该是0-9,...
答:为方便你理解,数组和循环我都没用,就单纯if判断,最简单的了。include <stdio.h>int main(){ float a,b,c,d,sum=0; scanf("%f%f%f",&a,&b,&c,&d); sum=a+b+c+d; if(a>3) printf("A:%.2f\n",a/sum); if(b>3) printf("B:%.2f\n",b/sum);...
答:相当于while(0<=2);
答:问1: pA + 10 = (unsigned long)PA + 10 * sizeof(*PA)= 0x10000000 + 10 * 16 问2:(char*) pA + 10 = (unsigned long)PA + 10 * sizeof(char) = 0x10000000 + 10 * 1 问3: (int*) pA + 10 = (unsigned long)PA + 10 * sizeof(int)= 0x10000000 + ...
答:求回文数的程序:回文数是从右向左读和从左向右读都是一样的。比如15651,1221等。这个程序是验证用户输入的一个四位数是不是回文数。但是程序好像有错误:举个例子:用户输入5885。先分离数字,a,b,c,d分别等于5,8,8,5。然后判断a是否等于d且b是否等于c。如果条件满足则是回文数,否则不...
答:16转2进制,简单,没位代表4位,a=十,b=十一;四位按8 4 2 1 的权,十就是1010,十一就是1011,合在一起就是10101011 就是说是1的位加起来是A、B
答:输出结果为:4423 这段程序是将字符串“444x33y22z”从第一个字符开始,没间隔一个字符判断一次,若为数字字符,则显示该字符,直至字符串结束。