注册 登录
编程论坛 C语言论坛

请求各位大神帮我看看这段c语言代码什么意思呀,新手上路!

ke20xx 发布于 2019-07-23 13:52, 2679 次点击
#include "stdafx.h"
#include <string.h>
int main (void)
{
int i = 0;
int s = 0;
for (i = 1; i <= 10; i++)
{
if (i == 6){
continue;
 }
s += i;
}
printf("i = %d\n",i);
printf("s = %d\n",s);
return 0;
}
9 回复
#2
wufuzhang2019-07-23 14:21
回复 楼主 ke20xx
#include "stdafx.h" 应该改为#include <stdio.h>

程序代码:

int main (void)
{
    int i = 0;                 //定义整型变量,这个应该知道吧
    int s = 0;
    for (i = 1; i <= 10; i++)  //for循环从1到10
    {
        if (i == 6)
        {                      //if判断,当i等于6时执行if里面的代码           
            continue;          //continue是继续下一个循环,即continue后面的代码都不执行了,重新开始执行下一个循环
        }
        s += i;                //将s + i的值赋给s
    }
    printf("i = %d\n",i);      //当i = 11的时候,退出for循环,所以i = 11
    printf("s = %d\n",s);      //1+2+...+10=55,因为i = 6 时不执行s += i; 这条语句,所以最后s = 49
    return 0;                  //main函数的返回值,执行成功返回0,失败返回非0值
}


[此贴子已经被作者于2019-7-23 16:20编辑过]

#3
aCprogrammer2019-07-23 15:29
建议采用一下缩进格式,这样更容易理解
#4
ke20xx2019-07-23 18:18
回复 2楼 wufuzhang
学到了学到了,谢谢哈
#5
ke20xx2019-07-23 18:47
回复 2楼 wufuzhang
不好意思,能在帮我看看这个嘛,刚开的课程感觉好难,看不懂
#include "stdio.h"
#include <string.h>
int main (void)
{
    unsigned int a=6;
    int b = -20;
    (a+b>6)? printf("a+b>6\n") : printf("a+b<=6\n");
    return 0;
}
输出结果是什么?为什么?
#6
rjsp2019-07-23 20:07
结果是什么?你运行一下就知道了。
为什么?整数提升,int和unsigned作运算时,int提升为unsigned类型
#7
rjsp2019-07-23 20:16
若无符号操作数的转换等级大于或等于有符号操作数的转换等级,则将有符号操作数转换为无符号操作数的类型。

https://zh.
#8
ke20xx2019-07-23 20:54
回复 6楼 rjsp
感谢大神解答,刚学习C不是很懂
#9
热心市民小白2019-07-24 00:32
回复 5楼 ke20xx
a+b>6
a+b<=6
这就是程序运行结果
#10
wufuzhang2019-07-24 09:34
回复 5楼 ke20xx
先告诉你输出结果是:a + b > 6

看下面代码:
程序代码:

#include <stdio.h>
#include <string.h>

 
int main (void)
{
    unsigned int a = 6;
    int b = -20;
    printf("a + b = %X\n", a + b); //a + b = -14,十六进制输出FFFFFFF2
    (a + b > 0xFFFFFFF1)? printf("a + b > 0xFFFFFFF1\n") : printf("a + b <= 0xFFFFFFF1\n");   
    //有符号整数与无符号整数相加,结果被提升为无符号整数,所以FFFFFFF2被当做无符号整数处理,大于0xFFFFFFF1,输出第一个表达式a + b > 0xFFFFFFF1
    (a + b > 0xFFFFFFF2)? printf("a + b > 0xFFFFFFF2\n") : printf("a + b <= 0xFFFFFFF2\n");
    //同理,这条语句输出第二个表达式a + b <= 0xFFFFFFF2
    (a + b > 6)? printf("a + b > 6\n") : printf("a + b <= 6\n");
    //所以这个条语句当然输出a + b > 6
   
//注:这个是c中唯一的三元运算符,先判断?左边的表达式,为真输出?右边第一个表达式,为假输出?右边第二个表达式。
    return 0;
}


[此贴子已经被作者于2019-7-24 09:36编辑过]

1