#in
#include
#include
#include
typedef struct{
int data[10];
}seqlist;
int input(seqlist *L,int a[],int n){
int i;
for(i=0;i
L->data[i]=a[i];
}
int output(seqlist *L,int a[],int n){
int i;
for(i=0;i
printf("%2d",L->data[i]);
}
main(){
seqlist *L;
int a[10];
int n,i;
printf("有多少数?\n");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("第%d个数:\n",i+1);
scanf("%d",&a[i]);
}
input(L,a,n);
output(L,a,n);
getch();
return 0;
}
我的程序哪里有问题?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Italink 2018-10-25 14:27关注
结构体创建有问题,你创建的是一个结构体指针,并没有分配空间
方法一:直接创建结构体
#include<stdio.h> #include<conio.h> typedef struct { int data[10]; }seqlist; void input(seqlist *L, int a[], int n) { int i; for (i = 0; i <n;i++) L->data[i] = a[i]; } void output(seqlist *L, int a[], int n) { int i; for (i = 0; i < n; i++) printf("%2d", L->data[i]); } int main() { seqlist L; int a[10]; int n, i; printf("有多少数?\n"); scanf("%d", &n); for (i = 0; i < n; i++) { printf("第%d个数:\n", i + 1); scanf("%d", &a[i]); } input(&L, a, n); output(&L, a, n); getch(); return 0; }
方法二:使用malloc给结构体指针分配空间
#include<stdio.h> #include<conio.h> #include<malloc.h> typedef struct { int data[10]; }seqlist; void input(seqlist *L, int a[], int n) { int i; for (i = 0; i <n;i++) L->data[i] = a[i]; } void output(seqlist *L, int a[], int n) { int i; for (i = 0; i < n; i++) printf("%2d", L->data[i]); } int main() { seqlist *L; L = (seqlist*)malloc(sizeof(seqlist)); int a[10]; int n, i; printf("有多少数?\n"); scanf("%d", &n); for (i = 0; i < n; i++) { printf("第%d个数:\n", i + 1); scanf("%d", &a[i]); } input(L, a, n); output(L, a, n); getch(); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 石墨烯磁表面等离子体
- ¥15 angular 项目无法启动
- ¥15 安装wampserver,图标绿色,但是无法进入软件
- ¥15 C++ MFC 标准库 加密解密解惑
- ¥15 两条数据合并成一条数据
- ¥15 Ubuntu虚拟机设置
- ¥15 comsol三维模型中磁场为什么没有“速度(洛伦兹项)”这一选项
- ¥15 electron 如何实现自定义安装界面
- ¥15 关于#linux#的问题:子进程C运行“ls –l”命令,且显示“C运行ls-l命令”(语言-c语言)
- ¥15 vs code配置c语言遇到这个问题