ChatGPT で paiza プログラミングスキルチェックに挑戦
IT / Web エンジニアのための転職サービスを提供している paiza 転職のサイトには、プログラミングスキルをチェックするための各種問題集が用意されています。そこで、この問題集を使って ChatGPT のプログラミングスキルをチェックしてみることにしました。ここでは、paiza プログラミングスキルチェック(練習問題)にある「値取得・出力サンプルコード」を題材として取り上げます。サンプルコードの詳細や各種言語の回答例は下記のページをご覧ください。
paiza.jp
ChatGPT にサンプルコードを作成させてみる
ChatGPT の入力フォームに作成するプログラムの仕様を下記のように入力しました。次のようなプログラムをC言語を使って作りなさい。
入力される値
2
2 5
3 4
期待する出力
hello = 2 , world = 5
hello = 3 , world = 4
入力内容はたったこれだけです。文章による余計な解説はつけずに入出力だけを列挙しましたが、ChatGPT は課題内容を正確に読み取って下記のように回答してきました。
以下は、C言語で書かれたプログラムです。
#include <stdio.h> int main() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) { int hello, world; scanf("%d %d", &hello, &world); printf("hello = %d , world = %d\n", hello, world); } return 0; }このプログラムでは、最初にscanf()関数を使用して、入力値の数を受け取ります。その後、forループを使用して、入力値の行をスキャンして、helloとworldに値を格納します。そして、printf()関数を使用して、出力されるメッセージに変数の値を挿入しています。
C言語は、高速かつ効率的なプログラムを書くことができる言語です。また、標準入出力に関するライブラリが充実しており、システムプログラムの開発に向いています。しかし、ポインターやメモリ管理などの複雑な概念があり、初心者には敷居が高い言語とされています。
paiza プログラミングスキルチェックの回答例
ちなみに、下記のソースコードは、paiza プログラミングスキルチェックのサンプルコードページに C 言語による回答例として掲載されているものです。この回答例と ChatGPT が提示したソースコードのどちらが効率的で汎用性が高いかは読者の皆さんの判断にお任せします(笑)。#include <stdio.h> int main(void){ int i, n; char buf[1000]; char token1[100], token2[100]; fgets(buf, sizeof(buf), stdin); sscanf(buf, "%d\n", &n); for (i=0; i<n; i++) { fgets(buf, sizeof(buf), stdin); sscanf(buf, "%s %s\n", token1, token2); printf("hello = %s , world = %s\n" ,token1 ,token2); } return 0; }