C Primer Plus 第6版 第7章 编程练习

简介: C Primer Plus 第6版 第7章 编程练习

1.读写输入,读到#停止,然后报告读到的 空格 、换行、其他字符数量。

#include<stdio.h>
int main()
{
  char ch = 0;
  int space = 0;
  int line_change = 0;
  int other = 0;
  printf("输入一串字符,#结束\n");
  while ((ch = getchar()) != '#')
  {
    if (ch == ' ')
      space++;
    else if (ch == '\n')
      line_change++;
    else
      other++;
  }
  printf("空格:%d个, 换行:%d个 其他字符:%d个 ", space, line_change, other);
  getchar(); getchar();
  return 0;
}

2.读写输入,读到#停止。 然后打印字符 及其对应的ASCII码(8个一行)

#include<stdio.h>
int main()
{
  char ch = 0;
  int i = 0;
  printf("输入一串字符,#结束\n");
  while ((ch = getchar()) != '#')
  {
 
    printf("%c:%d ", ch, ch);
    i++;
    if (i % 8 == 0)
      printf("\n");
  }
  
  getchar(); getchar();
  return 0;
}

3.读取整数直至0.报告偶数的个数,平均值,奇数的个数,平均值。

#include<stdio.h>
int main()
{
 
  int num;
  int o = 0;
  int sum_o = 0;
  int j = 0;
  int sum_j = 0;
  while (scanf_s("%d", &num) && num != 0)
  {
    if (num % 2 == 0)
    {
      o++;
      sum_o += num;
    }
    else
    {
      j++;
      sum_j += num;
    }
  }
  printf("偶数共%d个,平均值%lf\n", o, 1.0*sum_o / o);
  printf("奇数共%d个,平均值%lf\n", j, 1.0*sum_j / j);
  getchar(); getchar();
  return 0;
}

4.读取直至#,用!替代。 !! 替代!

然后报告替代的次数。

#include<stdio.h>
int main()
{
  char ch;
  int i = 0, j = 0;
 
  while ((ch = getchar()) != '#')
  {
    if (ch == '.')
    {
      putchar('!');
      i++;
    }
    else if (ch == '!')
    {
      putchar('!');
      putchar('!');
      j++;
    }
    else
      putchar(ch);
  }
 
  printf("\n.替换成!:%d次",i);
  printf("\n!替换成!!:%d次",j);
  getchar(); getchar();
  return 0;
}

5. 使用switch 改写4. 略。

6.读取输入直到#,报告ei出现的次数

#include<stdio.h>
int main()
{
  char ch1 = 0, ch2=0;
  int time_ei = 0;
  ch1 = getchar();
  while (ch1 != '#')
  {
    ch2 = ch1;
    ch1 = getchar();
    if (ch1 == 'i')
    {
      if (ch2 == 'e')
        time_ei++;
    }
  }
 
  printf("ei出现了%d次", time_ei);
  getchar(); getchar();
  return 0;
}

7,8 略

9.输入正整数,显示小于等于它的素数。

#include<stdio.h>
#include<math.h>
int judge_prime(int n)
{
  int i;
  double k;
  k = sqrt(n);
  for (i = 2; i <= k; i++)
  {
  if (n%i == 0) break;
  }
   if (i <= k) 
     return 0;
  else 
     return 1;
}
int main()
{
 
  int num;
  while (scanf_s("%d", &num) && num > 0)
  {
    printf("<= %d的素数有:", num);
    for (int i = 2; i <= num; i++)
      if (judge_prime(i))
        printf("%d ", i);
    printf("\n");
  }
  getchar(); getchar();
  return 0;
}
相关文章
|
5月前
C Primer Plus 第6版 第3章 编程练习
C Primer Plus 第6版 第3章 编程练习
|
5月前
C Primer Plus 第6版 第8章 编程练习
C Primer Plus 第6版 第8章 编程练习
|
5月前
C Primer Plus 第6版 第9章 编程练习
C Primer Plus 第6版 第9章 编程练习
|
5月前
|
存储
C Primer Plus 第6版 第6章 编程练习
C Primer Plus 第6版 第6章 编程练习
|
5月前
C Primer Plus 第6版 第5章 编程练习
C Primer Plus 第6版 第5章 编程练习
|
5月前
C Primer Plus 第6版 第2章 编程练习
C Primer Plus 第6版 第2章 编程练习
|
5月前
|
编译器
C Primer Plus 第6版 第10章 编程练习
C Primer Plus 第6版 第10章 编程练习
|
5月前
C Primer Plus 第6版 第4章 编程练习
C Primer Plus 第6版 第4章 编程练习
|
5月前
|
C语言
C primer plus 学习笔记 第3章 数据和C
C primer plus 学习笔记 第3章 数据和C
C++ Primer Plus 第二章编程练习
C++ Primer Plus 第二章编程练习
下一篇
无影云桌面