1问题描述

求一个长方形的面积S及周长P。面积的公式为S = a × b,周长的公式P=2*(a+b),其中a代表长方形的长,b代表长方形的宽。

输入说明

你的程序需要从标准输入设备(通常为键盘)中读入两个整数:一个整数a(0 ≤a < 10000),代表长方形的长;一个整数b(0 ≤ b < 10000),代表长方形的宽;在a和b之间有一个空格;在行首和行尾没有多余的空格。

输出说明

你的程序需要向标准输出文件(通常为启动该程序的终端)输出对应的答案。答案占一行,其中包含两个整数,即长方行的面积和周长,中间以一个空格分隔。在行首和行尾不要输出多余的空格。

个人总结:1,前两行万能开头(多打几次就熟悉了)2,一开始定义变量都是整数  3,题目要求输出隔空格就隔着,写endl和return 0(因为int main的返回值是int)

ai润色版:1. 算法思路 (Algorithm Strategy):本题主要考察多组数据的连续输入处理。通过 while(cin >> a >> b) 结构,程序能够持续读取测试用例直到文件结束符 (EOF),这是 OJ (Online Judge) 系统中处理不定长输入的标准写法。

2. 代码规范:

  • 头文件: 使用 #include <bits/stdc++.h> 万能头文件可以提高刷题效率,涵盖了输入输出流及数学库。

  • 程序出口: 养成标准习惯,在 main 函数末尾添加 return 0; 以确保程序正常结束。

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b,s,p;
    while(cin>>a>>b){
        s=a*b;
        p=2*(a+b);
        cout<<s<<" "<<p<<endl;
    }
    return 0;
}

2,

问题描述

尝试求从1+2+…+N这N个自然数的和。

输入说明

你的程序需要从标准输入设备(通常为键盘)中读入一个整数N(1 ≤ N < 10,000);在行首和行尾没有多余的空格。在所有数据的前后,以及两组数据之间都没有多余的空行。

输出说明

对每组测试数据,你的程序需要向标准输出设备(通常为启动该程序的终端)输出对应的答案,其中仅有一个整数,即题目描述中的数列之和。在行首和行尾不要输出多余的空格。

个人总结:1,很典的for循环思想,1一直加到N  2,报错250,254啥的又看括号,检查了下发现是括号没注意用了中文

ai润色版:1. 算法思路:本题利用 for 循环实现从 1 遍历到 N 的过程,配合累加器 sum 计算总和。2. 易错点复盘 (Critical Pitfall):将 sum 重置为 0 (sum = 0;),以确保每次计算都是独立的。

#include<bits/stdc++.h>
using namespace std;
int main(){
    int N,sum=0;
    while(cin>>N){
        for(int i=1;i<=N;i++){
            sum+=i;
        }
        cout<<sum<<endl;
    }
    return 0;
}

3,编写程序:输入a、b后,输出一元一次方程2*a*x+3*b-5=0的解。

输入说明

整数a b

输出说明

x 保留1位小数

个人总结:一开始只写了sexprecision(1)五个结果只对了2个才想起来没加fixed,加了fixed表示小数点后几位,没加表示有效数字

ai润色版:

1. 算法模型 (Mathematical Modeling):
本题实质是将代数方程 转化为计算机可执行的赋值表达式。
注:在代码实现中,建议将变量直接定义为 double 类型以避免整数除法造成的精度丢失。

2. 易错点复盘 (Critical Pitfall):
C++ 输出流格式控制的机制混淆。

  • 错误形态: 单独使用 setprecision(n)。在 C++ 标准流中,若不指定显示模式,该函数默认控制的是有效数字 (Significant Digits) 的位数,这会导致不同数量级的数据输出格式不统一,从而未通过部分测试点。

  • 修正方案: 必须联合使用 fixed 操作符。语句 cout << fixed << setprecision(1) 显式指定了浮点数采用定点表示法 (Fixed-point notation),此时参数 1 才被严格定义为小数点后的保留位数

#include<bits/stdc++.h>
using namespace std;
int main(){
    double a,b,x;
    while(cin>>a>>b){
        x=(5-3*b)/(2*a);
        cout<<fixed<<setprecision(1)<<x<<endl;
    }
    return 0;
}

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐