gpt4 book ai didi

c - 使用基本C语言输出二维数组

转载 作者:行者123 更新时间:2023-11-30 16:09:16 24 4
gpt4 key购买 nike

我正在尝试制作一个可以输入10个学生姓名的程序,但我只是不知道如何存储它们。我编写了下面的代码,我真的认为没有错误,这只是我如何使用名称输入的草稿。我们只允许使用 C 语言来实现此目的。

这就是我想要的输出:

List:
arr[0][50]=jason
arr[1][50]=jade
.
.
.
arr[10][50]=mark

但它只是不断显示错误,我只能在它显示第一个相等之前运行它。

下面是我的代码。请原谅我的语法,我对编码非常陌生。

#include<stdio.h>
#define pf printf
#define sf scanf

#define ENTER 13
#define TAB 9
#define BKSP 8

main()
{
char g7nameinput[0][50];
char g7fname[10][50], g7mname[10][50], g7lname[10][50];
char ch, choice;
int incname, incnamelist=0, i, max=50;

createstudent:
pf("\n\nInput first name: ");
incname=0;
while(1)
{
ch=getch();

if(ch==ENTER)
{
g7nameinput[0][incname]='\0';
break;
}
else if(ch==BKSP)
{
if(incname>0)
{
incname--;
pf("\b \b");
}
}
else if(ch==TAB)
{
continue;
}
else
{
g7nameinput[0][incname]=ch;
incname++;
pf("%c",ch);
}
}
pf("\nFirst Name inputted is %s",g7nameinput);
pf("\n\nInputted correct? [Y/N]: ");
sf("%c",&choice);

if((choice=='Y')||(choice=='y'))
{
g7fname[incnamelist][50] = g7nameinput;
incnamelist++;

pf("\n\nList:");
for(i=0;i<incnamelist;i++)
{
pf("\narr[%d][%d]=%s",i,max,g7fname[i][50]);
}

goto createstudent;
}
else
{
goto createstudent;
}
}

最佳答案

但我只是不知道如何存储它们......

使用结构体数组:

#define MAX_NAMES 10 //per your stated maximum

typedef struct {
char first[80];
char middle[80];
char last[80];
}NAMES;

NAMES names[MAX_NAMES] = {0};//a container with space for 10 first, middle and last names

还有一种通过主函数输入学生姓名的非常简单的方法:

int main(void)
{
int i;

for(i=0;i<MAX_NAMES;i++)
{
printf("Enter the First name of student %d\n", i+1);
fgets(names[i].first, sizeof(names[i].first), stdin);
printf("Enter the Middle name of student %d\n", i+1);
fgets(names[i].middle, sizeof(names[i].middle), stdin);
printf("Enter the Last name of student %d\n", i+1);
fgets(names[i].last, sizeof(names[i].last), stdin);
}

return 0;
}

关于c - 使用基本C语言输出二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59180232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com