超级简单C语言请详细解释黄色字体 Succs[snum++]=i 不明白sum++是啥意思,后面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了超级简单C语言请详细解释黄色字体 Succs[snum++]=i 不明白sum++是啥意思,后面相关的知识,希望对你有一定的参考价值。

超级简单C语言请详细解释黄色字体
Succs[snum++]=i
不明白sum++是什么意思,后面的=i又是什么意思
请举例子
🙏🙏

int n = 1;
int a = ++n;  // 前置++,先给n+=1,然后赋给变量a,a的值为2,n的值为2
int b = n++;  // 后置++,先将a的值赋给b,再给n+=1,b的值为2,n的值为3

// 所以上面这句可拆分理解:
Succs[snum++]=i
// 相当于:
Succs[snum] = i   // =i 不就是将i的值赋给数组Succs的第snum个元素么,难理解?
snum += 1;  // 因为是后置++,所以执行上面的语句后再给snum加上1

追问

能再详细点么 用程序中i=0时举个例子
比如i=0是及格的
那么succss会变成怎么样子

Sum加一后放在哪里?

追答

snum是及格学生的人数,succs数组保存的所有及格学生的编号(1...n)

...
printf("%2d号:", i + 1); // 提示你当前是哪编号的学生
scanf("%d", &tensu[i]);  // 将你输入的分数存入tensu数组的第i个元素中
if (tensu[i] > = 60)  // 如果你输入的分数>= 60,代表这个学生及格了
  succs[snum++] = i;  // 学生及格,则将编号按顺序保存到succs数组中,同时snum加1
                      // snum从0开始,所以第1个及格的保存在0里面,依序自增。
                      // 数组的基本概念

追问

下边有个SUCCS[i]+1又是什么意思

你的意思是说如果i=0是及格的话,success【0】而sum=1是吗

Snum

Succs[0]=0?snum=1?

懂了!😱😱😱

懂了!!😭😭

有微信么😭以后可以直接问你么😭

追答

succs是数组,保存的是遍历时的i,而i的范围是从0开始的,对应succs的下标从0开始


你看看输入的提示:

printf("%2d号:", i + 1); // 这里用的是i+1
if (tensu[i] >= 60)  // 这里用的是i
  succs[snum++] = i; // 这里保存的也是i

综上,当输入第1个学生分数时,提示的是1,保存的编号为0(保存的编号比实际编号小1)

所以,后面要输出及格学生的编号,需要给succs[i]加上1。


前面已经给你解决了,每输入一个>=60的分数,snum会加1,有几个及格的,snum就是几。

i=0,表示第1个,如果及格了,snum自然就是1了。

追问

微信加我吧😭我大一 求指引求开导 不然我快活不下去了😭😭对C已经醉了

WECHAT:loewemylove

参考技术A Succs是个数组名,【sum】代表数组中第几个
sum++ 意识是 sum=sum+1
这句话整个意思是将 i放到Succs【sum】里,同时数组向后移动一位追问

能再详细点么 用程序中i=0时举个例子
比如i=0是及格的
那么succss会变成怎么样子

同时数组向后移动一位?

不懂,举个例子🙏

C语言问题:假设输入N,问运行结果是啥?请耐心看完,准确详细解释

#include <stdio.h)
void main ( )

char ch;
ch=getch ( );
switch ( ch )

case 'Y': printf ("Yes\n");break;
case 'N': printf ("No\n");
case 'A': printf ("All\n"); break;
default : printf("Yes,No or All\n“);


首行应该是#include <stdio.h>

参考技术A 楼下已经把答案说了,我就告诉为什么执行case 'N'一行后,不直接跳到default。
switch语句实际上是顺次遍历语句,执行完一个case语句后,如果不符合结果就转移到下一个case语句。case 'N'执行后,这个语句是符合条件的,于是就继续往下一条语句执行(注意:是下一条语句,而不是下一条case语句),直到遇到break或者default才会停止。
default是缺省的意思,只有所有case语句都不符合或者找到符合的case语句后一直没遇到break时才执行。
参考技术B 会输出
NO
ALL
因为当switch发现输入是N以后,首先匹配到case 'N'一行,并执行printf("No\n");但是由于这一行后并没有break,所以这个标签直接穿越到下一个标签(case 'A'),并执行printf("All\n"),然后break追问

你的答案是对的。但是我想问它补为什么执行在case 'N'一行后,不直接跳到default,因为case 'A‘跟ch都不匹配,就不会执行啦?

参考技术C 会输出:
No
All
因为 switch ( 表达式)
case a
case b
case c
。。。。。。。。。。。
default :
假如表达式等于a,则它会执行case a以后的所有case情况知道遇到break
假如表达式等于c,则它会执行case c以后的所有case情况知道遇到break
而当所有case的情况都不满足表达式时就会执行default 。。。

希望楼主能看懂、、呵呵
参考技术D #include <stdio.h>
void main ( )

char ch;
ch=getchar( );
switch ( ch )

case 'Y': printf ("Yes\n");break;
case 'N': printf ("No\n");
case 'A': printf ("All\n"); break;
default : printf("Yes,No or All\n");


输入N会显示
No
All
因为你“n”这个case语句中没有使用break;
如果想只输出No,只要加break即可,case 'N': printf ("No\n");break;追问

你的答案是对的。但是我想问它补为什么执行在case 'N'一行后,不直接跳到default,因为case 'A‘跟ch都不匹配,就不会执行啦?

追答

已经找到N了,就不会再判断条件了,顺序向下执行语句printf ("All\n"); break;,所以输出all

本回答被提问者采纳
第5个回答  2011-07-26 1.输入“Y”,显示:
Yes
换行

2.输入“N”,显示:
No
All
换行

3.输入“A”,显示:
All
换行

4.输入其他,显示:
Yes,No or All
换行

以上是关于超级简单C语言请详细解释黄色字体 Succs[snum++]=i 不明白sum++是啥意思,后面的主要内容,如果未能解决你的问题,请参考以下文章

c语言思维导图 超级详细,快来看!

c语言思维导图 超级详细,快来看!

C语言如何改变一部分的字体颜色?

Paxos协议超级详细解释+简单实例

Paxos协议超级详细解释+简单实例

c语言字怎样颜色变化