-1
何らかの理由で、私がケース1を実行すると、4pmという時間が割り当てられているため、最初の3つのインスタンスで\ 0が見つかりませんでしたが、第4。私はnull文字が2次元配列でどのように動作するかについて少し混乱しています。デフォルトではすべての行に格納されていますが、追加する必要はありますか?私は名前のために5つの異なるスロットを持つ5x20配列を持っているようにしています。ありがとうございます。2d配列で ' 0'の問題
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
int j;
int total=0;
int opt;
int time;
char x[5][20];
char name[20];
printf("----MAIN MENU----\n");
printf("1: Request a lesson\n");
printf("2: Cancel a lesson\n");
printf("3: See available lessons\n");
printf("4: List all names starting with a letter\n");
printf("9: Quit\n");
for(;;)
{
scanf("%d",&opt);
switch(opt)
{
case 1:
printf("please enter your name\n");
scanf("%s",name);
//if schedule is full
if(total==5)
{
printf("Sorry, the teacher is too busy, try again tomorrow.\n");
}
//opening in schedule
else
for(i=0;i<5;i++)
if (x[i][0]=='\0')
{
strcpy(x[i], name);
total++;
printf("You have been assigned the time %dpm\n",i+1);
break;
}
break;
配列は決して初期化されません... –
..具体的には、有効なデータがある前に読むxです。 –
nameが19文字以上で、終端文字 '\ 0'がnulの場合はどうなりますか? 'NULL'とヌルはまったく違う2つの獣です。 – t0mm13b