• 乘积的末3位(product) 算法竞赛入门经典 习题3-3


      输入若干个整数(可以是正数、负数或者零),输出它们的乘积的末3位。这些整数中会混入一些由大写字母组成的字符串,你的程序应当忽略它们。提示:试试看,在执行scanf("%d")时输入一个字符串会怎样?

    C版本:

     1 #include <cstdio>
     2 using namespace std;
     3 
     4 const int magic=100;
     5 char str[magic];
     6 int main(){
     7     int n,product=1,num;
     8     while(1){
     9         num=scanf("%d",&n); //scanf("%d")读到一个字符串,不会报任何错误,字符串仍在文件流中,未被读取,返回值为0
    10         if(num==EOF)
    11             break;
    12         if(num==1)
    13              product=(product*(n%1000))%1000;
    14         else
    15             scanf("%s",str); //scanf读到文件末尾或者输入流错误,返回EOF
    16     }
    17     printf("%03d
    ",(product>=0?product:-product));
    18     return 0;
    19 }

    c++版本:

     1 #include <iostream>
     2 using namespace std;
     3 
     4 const int magic=100;
     5 char str[magic];
     6 int main(){
     7     int n,product=1;
     8     while(1){
     9         cin>>n;
    10         if(cin.eof()) //判断cin是否已经读到EOF字符,读到EOF时cin把eof.bit和fail.bit都设置成了1.
    11             break;
    12         if(cin.fail()){ //由于fail()在读到不正确的格式、读取流错误和读到EOF时都返回TRUE。bad()只在流错误(多是系统引起)时返回TRUE
    13             cin.clear();
    14             //cin.ignore(magic,' ');//如果使用空格分隔
    15             //cin.ignore(magic,'
    ');//如果使用换行分隔
    16             cin>>str;//不知道用什么分隔的,读入字符串,discard
    17         }else{
    18             product=(product*(n%1000))%1000;
    19         }
    20     }
    21     printf("%03d
    ",(product>=0?product:-product));
    22     return 0;
    23 }
  • 相关阅读:
    寒假学习笔记(15)
    寒假学习笔记(14)
    CSS(二) 文字样式属性,背景和列表
    CSS(一)基础
    Django初始化项目时报错
    数据表生成以及apps目录建立
    Django导入静态文件
    IntelliJ Idea 常用快捷键列表
    水木告白工作室:Thymeleaf模板引擎
    水木告白工作室:CSS3之路 (一:圆角、边框、背景)
  • 原文地址:https://www.cnblogs.com/purgiant/p/3185912.html
Copyright © 2020-2023  润新知