はじめに
僕が1時間かけて作ったプログラムです。
まずはお見せしようと思います。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_TASKS 100
typedef struct {
char task[100];
int completed;
} Task;
void displayTasks(Task tasks[], int count) {
printf("========== ToDoリスト ==========\n");
for (int i = 0; i < count; ++i) {
printf("%d. [%s] %s\n", i + 1, tasks[i].completed ? "x" : " ", tasks[i].task);
}
printf("==============================\n");
}
void addTask(Task tasks[], int *count, const char *newTask) {
if (*count < MAX_TASKS) {
Task task;
strcpy(task.task, newTask);
task.completed = 0;
tasks[*count] = task;
(*count)++;
printf("新しいタスクを追加しました。\n");
} else {
printf("ToDoリストが満杯です。\n");
}
}
void completeTask(Task tasks[], int count, int taskNumber) {
if (taskNumber >= 1 && taskNumber <= count) {
tasks[taskNumber - 1].completed = 1;
printf("タスクを完了しました。\n");
} else {
printf("無効なタスク番号です。\n");
}
}
int main() {
Task tasks[MAX_TASKS];
int taskCount = 0;
while (1) {
displayTasks(tasks, taskCount);
printf("\n1. タスクを追加する\n");
printf("2. タスクを完了する\n");
printf("3. 終了する\n");
int choice;
printf("選択してください: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("新しいタスクを入力してください: ");
char newTask[100];
scanf(" %[^\n]", newTask);
addTask(tasks, &taskCount, newTask);
break;
case 2:
printf("完了したいタスクの番号を入力してください: ");
int taskNumber;
scanf("%d", &taskNumber);
completeTask(tasks, taskCount, taskNumber);
break;
case 3:
printf("プログラムを終了します。\n");
exit(0);
default:
printf("無効な選択です。\n");
}
}
return 0;
}
まぁこれがプログラムですね.