判断一个整型值有无符号

http://topic.csdn.net/u/20090618/18/b892dbeb-2e2a-43cf-91bd-94ce661ad104.html


几种有意思的方法:

第一种:

 

第二种:a 为待测数

 

 

第三种:

给 a 随便一个负值,原理就是位扩展的时候,对于负数,如果是无符号数,高位扩 0,而对有符号数,高位扩 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是一段符合要求的 C 语言代码: ```c #include <stdio.h> #include <string.h> int main() { int n; scanf("%d", &n); // 输入整数 N getchar(); // 读取换行符,避免影响后面的输入 char str[85]; while (n--) { fgets(str, 85, stdin); // 读入一行字符串 int len = strlen(str); if (str[len-2] == '?') { // 如果句子以问号结尾 if (strstr(str, "PTA") != NULL) // 如果包含 PTA printf("Yes!\n"); else printf("No.\n"); } else { // 如果句子不以问号结尾 printf("enen\n"); } } return 0; } ``` 代码分析: 1. 首先读入整数 N,表示有 N 行字符串需要处理。 2. 使用 `fgets` 函数读入一行字符串,长度为 85,以避免超出数组范围。需要注意的是,`fgets` 函数会读入换行符,因此需要在后面的代码中进行处理。 3. 获取字符串长度 len,判断句子是否以问号结尾。 4. 如果句子以问号结尾,则使用 `strstr` 函数判断是否包含 PTA,如果包含则输出 Yes!,否则输出 No.。 5. 如果句子不以问号结尾,则直接输出 enen。 6. 循环处理下一行字符串,直到处理完所有字符串。 注意事项: 1. 使用 `fgets` 函数时,需要注意读入的换行符。 2. 对于字符串的末尾,需要使用下标 `len-2`(而不是 `len-1`),因为最后一个字符是换行符,倒数第二个才是问号。 3. 使用 `strstr` 函数判断字符串是否包含子串时,需要注意函数的返回值,如果返回 NULL 则表示不包含子串。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值