新人C语言简单求教!第一次发帖望通过
最近在自学C语言,小白求教,大神勿喷以下是我做的一个书上例题的C语言小程序,
利用结构体编写一个通讯录,输入姓名电话,然后输出这些信息。
我做了一点改变,struct notebook man;,程序本来是struct notebook man,(定义#define NUM 10).
我想输入人数,来确定通讯录中的人数(例题中是10人)。这里是什么问题呢??求教!!!
输出错误如下:
D:\软件学习\c语言\2019.7暑假\结构体通讯录.c(12) : error C2143: syntax error : missing ';' before 'type'
D:\软件学习\c语言\2019.7暑假\结构体通讯录.c(16) : error C2065: 'man' : undeclared identifier
D:\软件学习\c语言\2019.7暑假\结构体通讯录.c(16) : error C2109: subscript requires array or pointer type
D:\软件学习\c语言\2019.7暑假\结构体通讯录.c(16) : error C2224: left of '.name' must have struct/union type
D:\软件学习\c语言\2019.7暑假\结构体通讯录.c(16) : error C2198: 'gets' : too few actual parameters
D:\软件学习\c语言\2019.7暑假\结构体通讯录.c(18) : error C2109: subscript requires array or pointer type
D:\软件学习\c语言\2019.7暑假\结构体通讯录.c(18) : error C2224: left of '.num' must have struct/union type
D:\软件学习\c语言\2019.7暑假\结构体通讯录.c(18) : error C2198: 'gets' : too few actual parameters
D:\软件学习\c语言\2019.7暑假\结构体通讯录.c(22) : error C2109: subscript requires array or pointer type
D:\软件学习\c语言\2019.7暑假\结构体通讯录.c(22) : error C2224: left of '.name' must have struct/union type
D:\软件学习\c语言\2019.7暑假\结构体通讯录.c(22) : error C2109: subscript requires array or pointer type
D:\软件学习\c语言\2019.7暑假\结构体通讯录.c(22) : error C2224: left of '.num' must have struct/union type
执行 cl.exe 时出错.
结构体通讯录.obj - 1 error(s), 0 warning(s)
#include<stdio.h>
struct notebook
{
char name;
char num;
};
main()
{
int n,i;
printf("请输入人数:");
scanf("%d",&n);
struct notebook man;
for(i=0;i<n;i++)
{
printf("请输入姓名:\n");
gets(man.name);
printf("请输入电话:\n");
gets(man.num);
}
for(i=0;i<n;i++)
{
printf("姓名为:%s\t\t电话为%s\n",man.name,man.num);
}
} 你怎么在这问编程问题,去专业的社区讨论啊 csdn struct notebook man; 这叫变长数组,需要至少 C99 规范才支持!但是世界上 完整支持C99的编译器很少,大多数都是部分支持 C99 特性 #include<stdio.h>
struct notebook
{
char name;
char num;
};
main()
{
int n,i;
printf("请输入人数:");
scanf("%d",&n);
struct notebook *man = (struct notebook*)malloc(sizeof(struct notebook) * n);
for(i=0;i<n;i++)
{
printf("请输入姓名:\n");
gets(man.name);
printf("请输入电话:\n");
gets(man.num);
}
for(i=0;i<n;i++)
{
printf("姓名为:%s\t\t电话为%s\n",man.name,man.num);
}
free(man);
}
试一下吧 我也不确定对不对 直接改的 没测试 linzhe66 发表于 2019-8-11 12:50
你怎么在这问编程问题,去专业的社区讨论啊 csdn
嗯,多谢我去看看 ubuntu 发表于 2019-8-11 12:56
syntax error : missing ';' before 'type'
这种错误可能是丢了分号,简单看代码似乎没少,如果是标红的一 ...
我用的是vc++6.0,貌似是不支持c99{:1_925:},所以不行,多谢啦 ZCShou 发表于 2019-8-11 13:10
struct notebook man; 这叫变长数组,需要至少 C99 规范才支持!但是世界上 完整支持C99的编译器很少, ...
嗯嗯,明白了,多谢多谢 梦爱 发表于 2019-8-11 13:47
#include
struct notebook
{
多谢多谢 五星上将老汤姆 发表于 2019-8-11 14:46
我用的是vc++6.0,貌似是不支持c99,所以不行,多谢啦
抛弃古董vc6,换用vs或者vscode吧,当然vs也不支持这个可变长数组但其他方面可比vc6强多了 4楼正解 关于动态数组需要用指针实现吧 10楼应该给出来了,建议楼主研究一下2维动态数组的实现,c丢了太久了只有模糊的概念了
页:
[1]
2