吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1685|回复: 11
收起左侧

[求助] 新人C语言简单求教!第一次发帖望通过

[复制链接]
五星上将老汤姆 发表于 2019-8-11 12:32
最近在自学C语言,小白求教,大神勿喷
以下是我做的一个书上例题的C语言小程序,
利用结构体编写一个通讯录,输入姓名电话,然后输出这些信息。
我做了一点改变,struct notebook man[n];,程序本来是struct notebook man[NUM],(定义#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[20];
        char num[20];
};
main()
{
        int n,i;
        printf("请输入人数:");
        scanf("%d",&n);
        struct notebook man[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);
        }


}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

linzhe66 发表于 2019-8-11 12:50
你怎么在这问编程问题,去专业的社区讨论啊   csdn
ZCShou 发表于 2019-8-11 13:10
struct notebook man[n]; 这叫变长数组,需要至少 C99 规范才支持!但是世界上 完整支持C99的编译器很少,大多数都是部分支持 C99 特性
梦爱 发表于 2019-8-11 13:47
[C++] 纯文本查看 复制代码
#include<stdio.h>
struct notebook
{
        char name[20];
        char num[20];
};
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[i].name);
                printf("请输入电话:\n");
                gets(man[i].num);
        }
        for(i=0;i<n;i++)
        {
                printf("姓名为:%s\t\t电话为%s\n",man[i].name,man[i].num);
        }
       free(man);

}


试一下吧 我也不确定对不对 直接改的 没测试

免费评分

参与人数 1热心值 +1 收起 理由
liphily + 1 我就知道有人写这个答案

查看全部评分

 楼主| 五星上将老汤姆 发表于 2019-8-11 14:44
linzhe66 发表于 2019-8-11 12:50
你怎么在这问编程问题,去专业的社区讨论啊   csdn

嗯,多谢我去看看
 楼主| 五星上将老汤姆 发表于 2019-8-11 14:46
ubuntu 发表于 2019-8-11 12:56
syntax error : missing ';' before 'type'
这种错误可能是丢了分号,简单看代码似乎没少,如果是标红的一 ...

我用的是vc++6.0,貌似是不支持c99,所以不行,多谢啦
 楼主| 五星上将老汤姆 发表于 2019-8-11 14:47
ZCShou 发表于 2019-8-11 13:10
struct notebook man[n]; 这叫变长数组,需要至少 C99 规范才支持!但是世界上 完整支持C99的编译器很少, ...

嗯嗯,明白了,多谢多谢
 楼主| 五星上将老汤姆 发表于 2019-8-11 14:48
梦爱 发表于 2019-8-11 13:47
[mw_shl_code=cpp,true]#include
struct notebook
{

多谢多谢
cosct 发表于 2019-8-11 15:37
五星上将老汤姆 发表于 2019-8-11 14:46
我用的是vc++6.0,貌似是不支持c99,所以不行,多谢啦

抛弃古董vc6,换用vs或者vscode吧,当然vs也不支持这个可变长数组但其他方面可比vc6强多了
vista_info 发表于 2019-8-11 19:05
4楼正解 关于动态数组需要用指针实现吧 10楼应该给出来了,建议楼主研究一下2维动态数组的实现,c丢了太久了只有模糊的概念了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 02:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表