c语言一百题中的“经典与问题”

1.一次读取长字符,并一个一个显示 ASCII 码

#include <stdio.h>
#define MAX_STRING_LENGTH 65535 // 最大字符串长度
 
int main(){
  char s[MAX_STRING_LENGTH];
  printf("请输入长度小于 %d 的任意字符:",MAX_STRING_LENGTH);
  scanf("%s",s);    // 读取字符串。
  for(int i = 0; s[i]; i++){
    printf("%c的ASCII:%d\t",s[i],s[i]);
  }
}

问题:

s[i]:循环条件部分使用 s[i] 作为判断条件。在每次循环迭代开始之前,会检查 s[i] 是否为真值(非零)。这里 s[i] 表示数组 s 中索引为 i 的元素。这段代码使用 for 循环来遍历字符串数组 s 中的每个字符,并且循环会在遇到字符串的结束符 \0 时终止。

scanf("%s",s); 在C语言中,数组名本身就表示数组的首地址。因此,在使用 scanf 函数读取字符串时,不需要显式地取地址,直接使用数组名作为参数即可。

2.三元运算符的应用

#include <stdio.h>
 
int main(){
  char c;
  printf("请输入一个字符:");
  scanf("%c",&c);
  ( (c>='a' && c<='z') || (c>='A' && c<='Z')) ? printf("%c是字母",c) : printf("%c不是字母",c);
  return 0;
}

((c>='a' && c<='z') || (c>='A' && c<='Z')) ? printf("%c是字母",c) : printf("%c不是字母",c);

3.关于用输入控制循环(用于机械控制)

#include <stdio.h>
 
int main(void)
{
    float x;
    printf("请输入数字:(输入q退出)");
    int i=0;
    float status;
    float sum=0;
    float avg=0;
    status=scanf("%f", &x);
    while ( status==1 ) {
        sum+=x;
        printf("请输入数字:(输入q退出)");
        status=scanf("%f", &x);
        i++;
    }
    avg=sum/(i);
    printf("%.2f",avg);
    return 0;
}

通过临时变量status来控制。

4.结构体

 struct   data
 {      
  int day int month;
  int year
 }time1,time2; 

data为结构体名。

  • 定义结构体类型的同时定义结构体变量
  • time1.day  调用结构体
  • http://t.csdnimg.cn/Uxpr2(内有详细用法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值