L1-8 求整数段和

image
这道题比较简单,我就直接贴代码了

#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
    int a,b,sum=0,count=0;
    cin>>a>>b;
    for(int i=a;i<=b;i++)
    {
        cout<<setw(5)<<i;
        sum += i;
        count++;
        if(count%5==0)cout<<endl;
    }
    if(count%5!=0)cout<<endl;
    cout<<"Sum = "<<sum;
    return 0;
}

这道题里用到了格式输出,我觉得可以顺便学习一下C++的格式输出的方法,C++格式输出
比较常用的有下面这些

cout<<setw(5)<<(right<<)x; #输出的x占五个字符,默认右对齐,right可加可不加

cout<<setw(5)<<left<<x; #输出的x占五个字符,左对齐

cin>>setw(5)>>x>>setw(3)>>y; #读取五位赋值给x,读取三位赋值给y,其中x,y必须是字符串类型

cout<<fixed<<setprecision(n)<<x; #输出的x保留n位小数,注意x必须是float或者double型等有小数点的数据类型


昨天写题目还遇到了一个问题,平时容易被忽略,举个例子

while(x!='\n')
    {
        cou<<x;
	cin>>x;
    }

在这个代码里,我想重复读入数字,直到读到回车符,但是在这段代码里会进入死循环,按回车并不能跳出while循环

因为cin不能读回车,遇到回车它就停止,等待下一次输入,所以遇不到x=='\n'的情况,也就不能跳出循环了

要实现上述功能,可以把代码改成

while((x=getchar())!='\n')
    {
        cout<<x;
    }
posted @ 2022-06-29 22:04  ssuxi  阅读(110)  评论(0编辑  收藏  举报