ZZNUOJ(C/C++)基础练习1071——1080(详解版)

目录

 1071 : 分解质因子

C

C++

法二C语言

1072 : 青蛙爬井

 C

C++

1073 : 画个圈圈诅咒你

C

C++

1074 : 百钱买百鸡

C

C++

1075 : 聚餐人数统计

C

C++

1076 : 三位数求解

C

C++

1077 : 字符串加密

C

C++

1078 : a+b(多实例测试1)

C

C++

1079 : a+b(多实例测试2)

C

C++ 

1080 : a+b(多实例测试3)

 C

C++

收藏加关注,观看不迷路 


 1071 : 分解质因子

题目描述

将一个正整数分解质因数,例如,输入90,输出2 3 3 5。

输入

输入一个正整数n(2<=n<=2000)。

输出

从小到大输出n的所有质因子,每两个数之间空一格。(最后一个数之后不要多空格哦)

样例输入

20

样例输出

2 2 5

注意:质因数不会大于其平方根

C

#include<stdio.h>
#include<math.h>

int main()
{
    int n; // 输入的整数
    scanf("%d", &n); // 从标准输入读取一个整数n
    double mid = sqrt(n); // 计算n的平方根,用于优化循环范围,减少不必要的因子检查
    for (int i = 2; i <= mid; i++) // 从2开始循环,检查每个小于等于sqrt(n)的数是否是n的因子
    {
        if (n < i) break; // 如果n小于当前的i,说明已经分解完成,提前退出循环
        while (n % i == 0) // 如果n能被i整除,说明i是n的一个因子
        {
            if (n / i == 1) // 如果n除以i等于1,说明n已经被完全分解为i的幂,输出i后换行
            {
                printf("%d\n", i);
            }
            else // 否则输出i后加一个空格
            {
                printf("%d ", i);
            }
            n /= i; // 将n除以i,继续分解剩余部分
        }
    }
    
    if (n != 1) // 如果最后n不等于1,说明n本身是一个大于sqrt(n)的质因子
    {
        printf("%d\n", n); // 输出这个质因子
    }
    return 0;
}

C++

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;

int main()
{
    int n; // 定义变量n,用于存储输入的整数
    scanf("%d", &n); // 从标准输入读取一个整数n

    double mid = sqrt(n); // 计算n的平方根,并存储在mid中。这是因为一个数的质因数不会大于它的平方根
    for (int i = 2; i <= mid; i++) // 从2开始循环,检查每个小于等于mid的整数i是否是n的质因数
    {
        if (n < i) break; // 如果n小于当前的i,说明n已经被完全分解,提前退出循环
        while (n % i == 0) // 如果n能被i整除,说明i是n的一个质因数
        {
            if (n / i == 1) // 如果n除以i等于1,说明n已经被完全分解为i的幂
            {
                printf("%d\n", i); // 输出质因数i,并换行
            }
            else // 如果n除以i不等于1,说明还需要继续分解
            {
                printf("%d ", i); // 输出质因数i,并在后面加一个空格
            }
            n /= i; // 将n除以i,继续分解剩余部分
        }
    }
    
    if (n != 1) // 如果循环结束后n不等于1,说明n本身是一个大于mid的质因数
    {
        printf("%d\n", n); // 输出这个质因数,并换行
    }
    return 0; // 程序正常结束
}

法二C语言

#include<stdio.h>

int main()
{
    int n, m = 0, i; // 定义变量n(输入的整数),m(用于控制输出格式的标志),i(循环变量)

    scanf("%d", &n); // 从标准输入读取一个整数n

    // 首先处理2这个特殊的质因数,因为它是唯一的偶数质数
    while (n % 2 == 0) // 如果n能被2整除
    {
        if (m) // 如果m不为0,说明之前已经输出过质因数,需要在当前质因数前加一个空格
            printf(" ");
        
        printf("2"); // 输出质因数2
        
        n = n / 2; // 将n除以2,继续分解剩余部分
        m = 1; // 设置标志m为1,表示已经输出过质因数
    }

    // 接下来处理大于2的奇数质因数
    for (i = 3; i <= n; i += 2) // 从3开始,以步长为2的循环,检查每个奇数是否是n的质因数
    {
        while (n % i == 0) // 如果n能被i整除,说明i是n的一个质因数
        {
            if (m) // 如果m不为0,说明之前已经输出过质因数,需要在当前质因数前加一个空格
                printf(" ");
            
            printf("%d", i); // 输出质因数i
            
            n = n / i; // 将n除以i,继续分解剩余部分
            m = 1; // 设置标志m为1,表示已经输出过质因数
        }
    }

    return 0; // 程序正常结束
}

1072 : 青蛙爬井

题目描述

有一口深度为high米的水井,井底有一只青蛙,它每天白天能够沿井壁向上爬up米,夜里则顺井壁向下滑down米,若青蛙从某个早晨开始向外爬,试编写一个程序:对于任意指定的high、up和down值(均为自然数),计算青蛙多少天能够爬出井口?

输入

输入3个正整数:high、up和down。

输出

输出一个整数,表示天数。输出单独占一行。

样例输入

10 2 1

样例输出

9

 C

#include<stdio.h>
#include<math.h>

int main()
{
    int high, up, down; // 分别表示井的高度、白天爬升的高度和晚上滑落的高度
    scanf("%d%d%d", &high, &up, &down); // 从标准输入读取井的高度、白天爬升高度和晚上滑落高度

    int day = 0; // 初始化天数为0
    int mid = up - down; // 计算每天实际爬升的高度(白天爬升高度减去晚上滑落高度)

    // 如果井的高度为0,直接输出0天,因为蜗牛已经在井口
    if (high == 0) 
        printf("0\n");

    // 当井的高度不为0时,开始模拟蜗牛爬井的过程
    while (high != 0) 
    {
        if (up >= high) // 如果白天爬升的高度大于或等于井的高度,说明蜗牛在这一天可以爬出井口
        {
            day++; // 天数加1
            high = 0; // 井的高度设置为0,表示蜗牛已经爬出井口
        }
        else // 如果白天爬升的高度不足以爬出井口
        {
            day++; // 天数加1
            high -= mid; // 井的高度减去每天实际爬升的高度
        }
    }

    printf("%d\n", day); // 输出蜗牛爬出井口所需的天数
    return 0; // 程序正常结束
}

C++

#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间

int main()
{
    int high, up, down; // 分别表示井的高度、白天爬升的高度和晚上滑落的高度
    scanf("%d%d%d", &high, &up, &down); // 从标准输入读取井的高度、白天爬升高度和晚上滑落高度

    int day = 0; // 初始化天数为0
    int mid = up - down; // 计算每天实际爬升的高度(白天爬升高度减去晚上滑落高度)

    // 如果井的高度为0,直接输出0天,因为蜗牛已经在井口
    if (high == 0) 
        printf("0\n");

    // 当井的高度不为0时,开始模拟蜗牛爬井的过程
    while (high != 0) 
    { 
		day++; // 天数加1
        if (up >= high) // 如果白天爬升的高度大于或等于井的高度,说明蜗牛在这一天可以爬出井口
        {
           
            high = 0; // 井的高度设置为0,表示蜗牛已经爬出井口
        }
        else // 如果白天爬升的高度不足以爬出井口
        {
            high -= mid; // 井的高度减去每天实际爬升的高度
        }
    }

    printf("%d\n", day); // 输出蜗牛爬出井口所需的天数
    return 0; // 程序正常结束
}

1073 : 画个圈圈诅咒你

题目描述

咦!画圈圈 那么问题来了(和挖掘机无关)

给你一个整数,他到底有几个圈圈呢?

比如数字“0,9,6” 都是有一个圈圈, “8” 有两个圈圈, 其他数字没有圈圈。

输入

输入一个整数 n (1 <= n < 100000);

输出

输出这个数字有几个圈圈。

样例输入

89

样例输出

3

C

#include<stdio.h> // 包含标准输入输出库

int main()
{
    int n, res = 0; // 定义变量n(输入的整数)和res(结果,用于计数)
    scanf("%d", &n); // 从标准输入读取一个整数n

    while (n != 0) // 当n不为0时继续循环
    {
        if (n % 10 == 0 || n % 10 == 6 || n % 10 == 9) // 如果n的个位数是0、6或9
        {
            res++; // 结果加1
        }
        else if (n % 10 == 8) // 如果n的个位数是8
        {
            res += 2; // 结果加2
        }
        n /= 10; // 将n除以10,移除个位数
    }

    printf("%d\n", res); // 输出结果
    return 0; // 程序正常结束
}

C++

#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间

int main()
{
    int n, res = 0; // 定义变量n(输入的整数)和res(结果,用于计数)
    scanf("%d", &n); // 使用scanf从标准输入读取一个整数n

    while (n != 0) // 当n不为0时继续循环
    {
        if (n % 10 == 0 || n % 10 == 6 || n % 10 == 9) // 如果n的个位数是0、6或9
        {
            res++; // 结果加1
        }
        else if (n % 10 == 8) // 如果n的个位数是8
        {
            res += 2; // 结果加2
        }
        n /= 10; // 将n除以10,移除个位数
    }

    printf("%d\n", res); // 使用printf输出结果
    return 0; // 程序正常结束
}

1074 : 百钱买百鸡

题目描述

百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用100文钱买100只鸡,公鸡、母鸡、小鸡各买多少只?
本程序要求解的问题是:给定一个正整数n,用n文钱买n只鸡,问公鸡、母鸡、小鸡各买多少只?

输入

输入一个正整数n(n<=100)。

输出

如果有解,种组合占一行,包含公鸡、母鸡、小鸡的个数,用正整数表示,每个数据占4列。公鸡母鸡小鸡个数均大于等于0,按公鸡数目从小到大输出,公鸡数目相同按母鸡数目从小到大输出,以此类推。如果无解,输出“No Answer”。 

样例输入

100

样例输出

   0  25  75
   4  18  78
   8  11  81
  12   4  84

C

#include<stdio.h> // 包含标准输入输出库

int main()
{
    int n, flag = 1; // 定义变量n(输入的整数)和flag(标志变量,用于判断是否有解)
    scanf("%d", &n); // 从标准输入读取一个整数n,表示用n文钱买n只鸡

    // 外层循环枚举公鸡的数量i
    // 公鸡的价格为5文钱一只,因此最多可以买n/5只公鸡
    for (int i = 0; i <= n / 5; i++)
    {
        // 内层循环枚举母鸡的数量j
        // 母鸡的价格为3文钱一只,因此在购买了i只公鸡后,剩下的钱可以买(n - 5 * i) / 3只母鸡
        for (int j = 0; j <= (n - 5 * i) / 3; j++)
        {
            int k = n - j - i; // 计算小鸡的数量k,小鸡价格为3只一文钱
            // 总价计算公式为:公鸡总价(15 * i) + 母鸡总价(9 * j) + 小鸡总价(k)是否等于3n文钱
            if ( 15 * i + 9 * j + k == 3 * n)//两边同乘三得到此式
            {
                printf("%4d%4d%4d\n", i, j, k); // 如果满足条件,输出公鸡、母鸡和小鸡的数量
                flag = 0; // 设置标志变量flag为0,表示找到至少一个解
            }
        }
    }

    // 如果flag仍为1,说明没有找到满足条件的解
    if (flag == 1)
    {
        printf("No Answer\n"); // 输出"No Answer"
    }

    return 0; // 程序正常结束
}

C++

#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间

int main()
{
    int n, flag = 1; // 定义变量n(输入的整数)和flag(标志变量,用于判断是否有解)
    scanf("%d", &n); // 从标准输入读取一个整数n,表示用n文钱买n只鸡

    // 枚举公鸡的数量i,公鸡价格为5文钱一只,最多可以买n/5只
    for (int i = 0; i <= n / 5; i++)
    {
        // 枚举母鸡的数量j,母鸡价格为3文钱一只,最多可以买(n - 5 * i) / 3只
        for (int j = 0; j <= (n - 5 * i) / 3; j++)
        {
            int k = n - j - i; // 计算小鸡的数量k,小鸡价格为3只一文钱
            // 总价计算公式为:公鸡总价(15 * i) + 母鸡总价(9 * j) + 小鸡总价(k)总价是否等于3n文钱
            if (15 * i + 9 * j + k == 3 * n)
            {
                printf("%4d%4d%4d\n", i, j, k); // 如果满足条件,输出公鸡、母鸡和小鸡的数量
                flag = 0; // 设置标志变量flag为0,表示找到至少一个解
            }
        }
    }

    // 如果flag仍为1,说明没有找到满足条件的解
    if (flag == 1)
    {
        printf("No Answer\n"); // 输出"No Answer"
    }

    return 0; // 程序正常结束
}

1075 : 聚餐人数统计

题目描述

马克思手稿中有这样一道趣味数学题:男人、女人和小孩总计m个人,在一家饭店里吃饭,共花了n先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,请用穷举法编程计算男人、女人和小孩各有几个。

输入

输入两个正整数,表示人数m和花费n。

输出

若问题有解,则输出所有解,每行输出三个数据,代表男人、女人和小孩的人数,用空格分隔;若问题无解,则输出“No answer"。

样例输入

30 50

样例输出

0 20 10
1 18 11
2 16 12
3 14 13
4 12 14
5 10 15
6 8 16
7 6 17
8 4 18
9 2 19
10 0 20

C

#include<stdio.h>

int main()
{
    int m, n; // m表示总人数,n表示总共花费的先令数
    int flag = 1; // 标志变量,用于判断是否有解
    scanf("%d%d", &m, &n); // 输入总人数m和总花费n

    // 枚举男人的数量i,每个男人花费3先令,最多可以有n/3个男人
    for (int i = 0; i <= n / 3 && i <= m; i++) // 提前检查i是否超过总人数m
    {
        // 枚举女人的数量j,每个女人花费2先令,最多可以有(n - 3*i)/2个女人
        for (int j = 0; j <= (n - 3 * i) / 2 && j <= m - i; j++) // 提前检查j是否超过剩余人数
        {
            int k = m - i - j; // 计算小孩的数量k,小孩花费1先令
            // 检查小孩的数量是否非负,并且总花费是否等于n先令
            if (k >= 0 && 3 * i + 2 * j + k == n)
            {
                printf("%d %d %d\n", i, j, k); // 如果满足条件,输出男人、女人和小孩的数量
                flag = 0; // 设置标志变量flag为0,表示找到至少一个解
            }
        }
    }

    // 如果flag仍为1,说明没有找到满足条件的解
    if (flag == 1)
    {
        printf("No answer\n"); // 输出"No answer"
    }

    return 0; // 程序正常结束
}

    return 0; // 程序正常结束
}

C++

#include<iostream> // 包含C++标准输入输出流库
#include<algorithm> // 包含算法库(虽然在这段代码中未使用到)
using namespace std; // 使用标准命名空间

int main()
{
    int m, n; // m表示总人数,n表示总共花费的先令数
    int flag = 1; // 标志变量,用于判断是否有解
    scanf("%d%d", &m, &n); // 从标准输入读取总人数m和总花费n

    // 枚举男人的数量i,每个男人花费3先令,最多可以有n/3个男人
    for (int i = 0; i <= n / 3; i++)
    {
        // 枚举女人的数量j,每个女人花费2先令,最多可以有(n - 3*i)/2个女人
        for (int j = 0; j <= (n - 3 * i) / 2; j++)
        {
            int k = m - i - j; // 计算小孩的数量k,小孩花费1先令
            // 检查小孩的数量是否非负,并且总花费是否等于n先令
            // 总花费计算公式为:男人花费(3 * i) + 女人花费(2 * j) + 小孩花费(k)
            if (k >= 0 && k + 2 * j + 3 * i == n)
            {
                printf("%d %d %d\n", i, j, k); // 如果满足条件,输出男人、女人和小孩的数量
                flag = 0; // 设置标志变量flag为0,表示找到至少一个解
            }
        }
    }

    // 如果flag仍为1,说明没有找到满足条件的解
    if (flag == 1)
    {
        printf("No answer\n"); // 输出"No answer"
    }

    return 0; // 程序正常结束
}

1076 : 三位数求解

题目描述

已知xyz+yzz=n,其中n是一个正整数,x、y、z都是数字(0-9),编写一个程序求出x、y、z分别代表什么数字。如果无解,则输出“No Answer”
注意:xyz和yzz表示一个三位数,而不是表示x*y*z和y*z*z。

输入

输入一个正整数n。

输出

输出一行,包含x、y、z的值,每个数值占4列。

样例输入

532

样例输出

   3   2   1

注意:x和y不能等于0

100*x+y*10+z+y*100+z*10+z = 100*x + 110*y + 12 * z

C

#include<stdio.h>

int main()
{
    int n; // 定义变量n,表示输入的正整数
    scanf("%d", &n); // 从标准输入读取一个正整数n

    int flag = 1; // 定义标志变量flag,初始值为1,表示“未找到解”

    // 首先检查n的范围是否在可能的解的范围内
    // 最小值:当x=1, y=1, z=0时,100*1 + 110*1 + 12*0 = 210
    // 最大值:当x=9, y=9, z=9时,100*9 + 110*9 + 12*9 = 1998
    if (n > 1998 || n < 210)
    {
        printf("No Answer\n"); // 如果n不在范围内,直接输出"No Answer"
        flag = 0; // 设置flag为0,表示已处理
    }
    else
    {
        // 枚举x的值,x的范围是1到9(因为x是三位数的百位,不能为0)
        for (int x = 1; x <= 9; x++)
        {
            // 枚举y的值,y的范围是1到9(因为y是三位数的百位,不能为0)
            for (int y = 1; y <= 9; y++)   
            {
                // 枚举z的值,z的范围是0到9(因为z是三位数的个位,可以为0)
                for (int z = 0; z <= 9; z++)
                {
                    // 检查当前的x、y、z是否满足方程100*x + 110*y + 12*z == n
                    if (100 * x + 110 * y + 12 * z == n)
                    {
                        printf("%4d%4d%4d\n", x, y, z); // 如果满足条件,输出x、y、z
                        flag = 0; // 设置flag为0,表示找到至少一个解
                    }
                }
            }
        }
    }

    // 如果flag仍为1,说明没有找到满足条件的解
    if (flag == 1)
    {
        printf("No Answer\n"); // 输出"No Answer"
    }

    return 0; // 程序正常结束
}

C++

#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间

int main()
{
    int n; // 定义变量n,表示输入的正整数
    scanf("%d", &n); // 从标准输入读取一个正整数n

    int flag = 1; // 定义标志变量flag,初始值为1,表示“未找到解”

    // 检查n的范围是否在可能的解的范围内
    // 最小值:当x=1, y=1, z=0时,100*1 + 110*1 + 12*0 = 210
    // 最大值:当x=9, y=9, z=9时,100*9 + 110*9 + 12*9 = 1998
    if (n > 1998 || n < 210)
    {
        printf("No Answer\n"); // 如果n不在范围内,直接输出"No Answer"
        flag = 0; // 设置flag为0,表示已处理
    }
    else
    {
        // 枚举x的值,x的范围是1到9(因为x是三位数的百位,不能为0)
        for (int x = 1; x <= 9; x++)
        {
            // 枚举y的值,y的范围是1到9(因为y是三位数的百位,不能为0)
            for (int y = 1; y <= 9; y++)   
            {
                // 枚举z的值,z的范围是0到9(因为z是三位数的个位,可以为0)
                for (int z = 0; z <= 9; z++)
                {
                    // 检查当前的x、y、z是否满足方程100*x + 110*y + 12*z == n
                    if (100 * x + 110 * y + 12 * z == n)
                    {
                        printf("%4d%4d%4d\n", x, y, z); // 如果满足条件,输出x、y、z
                        flag = 0; // 设置flag为0,表示找到至少一个解
                    }
                }
            }
        }
    }

    // 如果flag仍为1,说明没有找到满足条件的解
    if (flag == 1)
    {
        printf("No Answer\n"); // 输出"No Answer"
    }

    return 0; // 程序正常结束
}

1077 : 字符串加密

题目描述

输入一串字符和一个正整数k,将其中的英文字母加密并输出加密后的字符串,非英文字母不变。加密思想:将每个字母c加一个序数k,即用它后面的第k个字母代替,变换公式:c=c+k。如果字母为z,则后一个字母是a,也就是字母字符形成一个圆。

输入

输入第一行是一个整数k,k是int范围内的正整数;输入第二行是若干字符,以回车结束。

输出

输出加密后的字符串,占一行。

样例输入

280
12kjsdZjk

样例输出

12edmxTde

C

#include<stdio.h>

int main()
{
    int k, i = 0; // k表示移动的位数,i用于记录字符串的索引
    scanf("%d", &k);
    getchar(); // 读取并丢弃换行符,避免影响后续的字符读取

    k = k % 26; // 将k取模26,因为字母表有26个字母,这样可以避免不必要的循环

    char ch, str[100000]; // ch用于临时存储每个字符,str用于存储最终加密后的字符串

    // 假设字符串长度不超过100000
    while(scanf("%c", &ch), ch != '\n') // 逐个读取字符,直到遇到换行符为止
    {
        if(ch >= 'a' && ch <= 'z') // 如果字符是小写字母
        {
            str[i++] = (ch - 'a' + k) % 26 + 'a'; // 将字母移动k个位置,结果仍然是小写字母
        } 
        else if(ch >= 'A' && ch <= 'Z') // 如果字符是大写字母
        {
            str[i++] = (ch - 'A' + k) % 26 + 'A'; // 将字母移动k个位置,结果仍然是大写字母
        } 
        else
        {
            str[i++] = ch; // 如果字符不是字母,直接保留原样
        }
    }

    str[i] = '\0'; // 在字符串末尾添加空字符,表示字符串结束
    puts(str); // 输出加密后的字符串
    return 0; // 程序正常结束
}

C++

#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间

int main()
{
    int k, i = 0; // k表示移动的位数,i用于记录字符串的索引
    scanf("%d", &k); // 从标准输入读取一个整数k
    getchar(); // 读取并丢弃换行符,避免影响后续的字符读取

    k = k % 26; // 将k取模26,因为字母表有26个字母,这样可以避免不必要的循环

    char ch, str[100000]; // ch用于临时存储每个字符,str用于存储最终加密后的字符串

    // 假设字符串长度不超过100000
    while(scanf("%c", &ch), ch != '\n') // 逐个读取字符,直到遇到换行符为止
    {
        if(ch >= 'a' && ch <= 'z') // 如果字符是小写字母
        {
            str[i++] = (ch - 'a' + k) % 26 + 'a'; // 将字母移动k个位置,结果仍然是小写字母
        } 
        else if(ch >= 'A' && ch <= 'Z') // 如果字符是大写字母
        {
            str[i++] = (ch - 'A' + k) % 26 + 'A'; // 将字母移动k个位置,结果仍然是大写字母
        } 
        else
        {
            str[i++] = ch; // 如果字符不是字母,直接保留原样
        }
    }

    str[i] = '\0'; // 在字符串末尾添加空字符,表示字符串结束
    puts(str); // 输出加密后的字符串
    return 0; // 程序正常结束
}

 

1078 : a+b(多实例测试1)

题目描述

计算A+B

输入

输入第1行为一个整数n(1≤n≤10),代表测试的组数。
下面有n组测试数据,每组1行,为2个整数,为A, B。

输出

对每行输入,输出A+B的值,单独占一行。

样例输入

2
1 2
3 4

样例输出

3
7

C

#include<stdio.h> // 包含标准输入输出库

int main()
{
    int n = 1; // 定义变量n,表示需要执行加法操作的次数,默认值为1
    scanf("%d", &n); // 从标准输入读取一个整数n

    // 使用while循环,循环n次,每次循环n减1
    while (n--)
    {
        int a, b; // 定义两个整数变量a和b
        scanf("%d%d", &a, &b); // 从标准输入读取两个整数a和b
        printf("%d\n", a + b); // 输出它们的和
    }

    return 0; // 程序正常结束
}

代码二 

#include<stdio.h> // 包含标准输入输出库

// 定义一个函数solve,用于处理每次加法操作
void solve()
{
    int a, b; // 定义两个整数变量a和b
    scanf("%d%d", &a, &b); // 从标准输入读取两个整数a和b
    printf("%d\n", a + b); // 输出它们的和
}

int main()
{
    int n = 1; // 定义变量n,表示需要执行加法操作的次数,默认值为1
    scanf("%d", &n); // 从标准输入读取一个整数n
    while (n--) // 循环执行n次,每次循环n减1
    {
        solve(); // 调用solve函数,处理一次加法操作
    }
    return 0; // 程序正常结束
}

C++

#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间

// 定义一个函数solve,用于处理每次加法操作
void solve()
{
    int a, b; // 定义两个整数变量a和b
    scanf("%d%d", &a, &b); // 从标准输入读取两个整数a和b
    printf("%d\n", a + b); // 输出它们的和
}

int main()
{
    int n = 1; // 定义变量n,表示需要执行加法操作的次数,默认值为1
    scanf("%d", &n); // 从标准输入读取一个整数n
    while (n--) // 循环执行n次,每次循环n减1
    {
        solve(); // 调用solve函数,处理一次加法操作
    }
    return 0; // 程序正常结束
}

1079 : a+b(多实例测试2)

题目描述

计算A+B

输入

输入数据有多组。
每组一行,为整数A, B。

输出

对每行输入,输出A+B的值,单独占一行。

样例输入

1 2
3 4

样例输出

3
7

C

在 C 语言中,scanf 和其他输入函数也可以检测到文件结束符(EOF)。scanf 函数在遇到 EOF 时会返回 EOF(通常是一个负值,通常是 -1)。因此,可以使用 scanf 的返回值来判断是否到达了文件结束符。

例如:while (scanf("%d %d", &A, &B) != EOF) 

#include<stdio.h>

int main()
{
    int A, B;
    while(scanf("%d %d", &A, &B) != EOF) // 使用scanf从标准输入读取A和B,直到输入结束
    {
        printf("%d\n", A + B); // 输出A和B的和,并换行
    }
    return 0; // 程序正常结束
}

C++ 

cin 在 C++ 中可以自动判断文件结束符(EOF)。当输入流到达文件结束符时,cin 会进入失败状态,可以通过检查输入流的状态来判断是否到达了文件结束符。

例如: while (cin >> A >> B)

#include <iostream>
using namespace std;

int main() {
    int A, B;
    while (cin >> A >> B) { // 从标准输入读取A和B,直到输入结束
        cout << A + B << endl; // 输出A和B的和,并换行
    }
    return 0; // 程序正常结束
}

1080 : a+b(多实例测试3)

题目描述

计算A+B

输入

输入数据有多组。
每组一行,为两个整数A, B。
输入0 0表示输入结束,该组输入不用处理。

输出

对每行输入,输出A+B的值,单独占一行。

样例输入

1 2
0 0

样例输出

3

注意:逻辑关系用或(||)

 C

#include<stdio.h> // 包含标准输入输出库

int main()
{
    int a, b; // 定义两个整数变量a和b

    // 使用while循环读取输入,循环条件是a!=0 || b!=0
    // 当a和b都为0时,循环停止
    while(scanf("%d%d", &a, &b) , a != 0 || b != 0)
    {
        printf("%d\n", a + b); // 输出a和b的和
    }

    return 0; // 程序正常结束
}

C++

#include<iostream> // 包含C++标准输入输出流库
using namespace std; // 使用标准命名空间

int main()
{
    int a, b; // 定义两个整数变量a和b

    // 使用while循环读取输入,循环条件是a!=0 || b!=0
    // 当a和b都为0时,循环停止
    while(scanf("%d%d", &a, &b) , a != 0 || b != 0)
    {
        printf("%d\n", a + b); // 输出a和b的和
    }

    return 0; // 程序正常结束
}

收藏加关注,观看不迷路 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值