寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

paizaラーニング: 天気占い(C, C++, Python, Java)

n日分の天気占いの結果を出力する問題と、その提出コードの解答例です。
paizaラーニングのレベルアップ問題集「戦セット」からの出典です。
paiza.jp
・問題
 明日からn日分の天気を占うために「明日天気にな〜れ」をすることにしました。
 足に履いている靴の片方を蹴り上げて、
 靴が表向きだったら「晴れ」、
 裏向きだったら「雨」、
 横向きだったら「曇り」であるとします。
 靴を蹴り上げた後の向きがn個入力されるので、n日分の天気占いの結果を出力してください。

・入力される値:入力は以下のフォーマットで与えられます。
   n
   d_1
   d_2
   ...
   d_n
 入力される文字列数n
 d_1, d_2, ..., d_n は forward または reverse または sideways
 入力はn + 1行となり、末尾に改行を一つ含みます。
 入力値最終行の末尾に改行が1つ入ります。
 文字列は標準入力から渡されます。

・期待する出力
 i行目に入力値d_iが、
 forward のとき Sunny
 reverse のとき Rainy
 sideways のとき Cloudy
 を出力してください。

・条件
 すべてのテストケースにおいて、以下の条件をみたします。
   1 ≤ n ≤ 10

僕が作成、提出したコードは、以下のとおりです。

/*
C言語による天気占い
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include <stdio.h>
#include <string.h>
int main(void) {
    int n,i;
    char d_i[10];
    char *p;
    scanf("%d",&n);
    i=0;
    while(i<n){
        scanf("%s",d_i);
        if(strcmp(d_i,"forward")==0){
          p="Sunny";
          printf("%s\n",p);
        }else if(strcmp(d_i,"reverse")==0){
          p="Rainy";
          printf("%s\n",p);
        }else if(strcmp(d_i,"sideways")==0){
          p="Cloudy";
          printf("%s\n",p);
        }
        i++;
    }
    return 0;
}
/*
C++による天気占い
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<iostream>
#include<cstdio>
using namespace std;
int main(void){
    int n;
    string d;
    cin>>n;
    for(int loop=0;loop<n;loop++){
        cin>>d;
        if(d=="forward"){
            printf("Sunny\n");
        }else if(d=="reverse"){
            printf("Rainy\n");
        }else if(d=="sideways"){
            printf("Cloudy\n");
        }
    }
    return 0;
}

Pythonのバージョンは、3.x に対応します。

#Pythonによる天気占い
#https://paiza.jp/works/mondai
#提出コードの解答例
#https://neguse-atama.hatenablog.com
n = int(input())

for i in range(n):
    d = str(input())
    
    if d == "forward":
        print("Sunny")
    elif d == "reverse":
        print("Rainy")
    else:
        print("Cloudy")
/*
Javaによる天気占い
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String N = sc.nextLine();
        int n = Integer.parseInt(N);
        for(int i =0; i < n; i++){
            String str = sc.nextLine();
            
            if(str.equals("forward")){
                System.out.println("Sunny");
            }else if(str.equals("reverse")){
                System.out.println("Rainy");
            }else if(str.equals("sideways")){
                System.out.println("Cloudy");
            }
            
        }
    }
}

paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。