| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1238 人关注过本帖, 1 人收藏
标题:挺简单的一个小问题,我没有注意,请大家指点,谢谢!
只看楼主 加入收藏
源本英明C
Rank: 3Rank: 3
来 自:日本
等 级:论坛游侠
帖 子:113
专家分:154
注 册:2010-5-14
结帖率:85.71%
收藏(1)
已结贴  问题点数:10 回复次数:11 
挺简单的一个小问题,我没有注意,请大家指点,谢谢!
下面这个程序完成的功能是:通过结构体的定义和调用,实现:学生信息(包括学号、姓名和学生成绩)的录入,并通过printf函数输出结果。
程序调试的时候,系统出现Arguments list syntax error!和Declaration syntax error! 请问这是为何,望大家帮忙看看,谢谢了!
#define N 5
struct student
{
 char num;
 char name[10];
 int score[3];
}stu[N];
input(stu[],ilnt n)
{int m;
for(m=0;m<N;m++)
printf("please input scores of student %d:\n",m+1);
printf("NO.:");
scanf("%d",&stu[m].num);
printf("name:");
scanf("%s",stu[m].name);
for(n=0;n<3;n++)
 {printf("score %d:",n);
   scanf("%d",&stu[m].score[n]);
  }
}
main()
{
int i,j;
printf("please input the records:\n");
for(i=0;i<N;i++)
input(stu[],N);
for(i=0;i<N;i++)
{printf("%d,%s",stu[i].num,stu[i].name);
{for(j=0;j<3;j++)
printf(" %d ",stu[i].score[j]);}printf("\n");}
getch();
}
搜索更多相关主题的帖子: 录入 系统 please scores 
2010-06-09 15:14
ljwei
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:46
专家分:192
注 册:2009-9-18
收藏
得分:1 
程序代码:
#define N 5
struct student
{
char num;
char name[10];
int score[3];
}stu[N];
void input(void)
{int m,n;
  for(m=0;m<N;m++)
  {  printf("please input scores of student %d:\n",m+1);
    printf("NO.:");
    scanf("%d",&stu[m].num);
    printf("name:");
    scanf("%s",stu[m].name);
    for(n=0;n<3;n++)
   {printf("score[%d]:",n);
    scanf("%d",&stu[m].score[n]);
    }
  }
}
void main()
{
int i,j;
printf("please input the records:\n");
input();
for(i=0;i<N;i++)
{printf("%d,%s",stu[i].num,stu[i].name);
{for(j=0;j<3;j++)
printf(" %d ",stu[i].score[j]);}printf("\n");}
getch();
}
2010-06-09 16:38
l302889153
Rank: 2
等 级:论坛游民
帖 子:66
专家分:89
注 册:2010-5-26
收藏
得分:0 
看不懂....
2010-06-09 16:40
nbaqqqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
收藏
得分:2 
#define N 5
struct student
{
char num;
char name[10];
int score[3];
}stu[N];
input(struct student stu[],int n)
{int m;
for(m=0;m<N;m++)
printf("please input scores of student %d:\n",m+1);
printf("NO.:");
scanf("%d",&stu[m].num);
printf("name:");
scanf("%s",stu[m].name);
for(n=0;n<3;n++)
{printf("score %d:",n);
   scanf("%d",&stu[m].score[n]);
  }
}
main()
{
int i,j;
printf("please input the records:\n");
for(i=0;i<N;i++)
input(stu,N);
for(i=0;i<N;i++)
{printf("%d,%s",stu[i].num,stu[i].name);
{for(j=0;j<3;j++)
printf(" %d ",stu[i].score[j]);}printf("\n");}
getch();
}
但结果还是有问题
2010-06-09 18:33
nbaqqqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
收藏
得分:2 
用指针传递结构体
程序代码:
#include"stdio.h"
#include<conio.h>
#define N 5
struct student
{
char num;
char name[10];
int score[3];
}stu[N];

void input(struct student *p,int n)
{    int i;
    printf("please input scores of student %d:\n",n+1);
    printf("NO.:");
    scanf("%d",&(p->num));
    printf("name:");
    scanf("%s",&(p->name));
    for(i=0;i<3;i++)
    {    printf("score %d:",i+1);
        scanf("%d",p->score+i);
    }

 
}
void output(struct student *q)
{    int i;
    printf("%7d,%-5s",q->num,q->name);
    for(i=0;i<3;i++)
    {
        printf("%7d",*(q->score+i));
    }
    printf("\n");
}
int main()
{
int j=0;
struct student *ptr,stu[N];
ptr=stu;
printf("please input the records:\n");
for(;ptr<stu+N;ptr++)
input(ptr,j);
ptr=stu;
for(;ptr<stu+N;ptr++)
output(ptr);
getch();
return 0;
}

2010-06-10 10:03
源本英明C
Rank: 3Rank: 3
来 自:日本
等 级:论坛游侠
帖 子:113
专家分:154
注 册:2010-5-14
收藏
得分:0 
谢谢了

柔术:打败对手的最好方法就是心狠手辣,因为对手不会给你太多机会,如果他够厉害!
2010-06-11 13:55
源本英明C
Rank: 3Rank: 3
来 自:日本
等 级:论坛游侠
帖 子:113
专家分:154
注 册:2010-5-14
收藏
得分:0 
我 回去看一下,呵呵

柔术:打败对手的最好方法就是心狠手辣,因为对手不会给你太多机会,如果他够厉害!
2010-06-11 13:55
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
收藏
得分:0 
有的变量没有定义或声明.
谁能解释下成绩和名字为什么要是数组?
2010-06-11 14:08
源本英明C
Rank: 3Rank: 3
来 自:日本
等 级:论坛游侠
帖 子:113
专家分:154
注 册:2010-5-14
收藏
得分:0 
回复 8楼 gaoce227
当然,想用指针做也没问题啊

柔术:打败对手的最好方法就是心狠手辣,因为对手不会给你太多机会,如果他够厉害!
2010-06-11 14:19
源本英明C
Rank: 3Rank: 3
来 自:日本
等 级:论坛游侠
帖 子:113
专家分:154
注 册:2010-5-14
收藏
得分:0 
多谢二、四楼的帮忙,但是我想用我的思路来写这个程序。请看下面的 一个小程序,我自己后来修改过了。这个程序是通过结构体的定义和调用,实现对学生信息(包括学号,姓名和成绩)的输入和输出。通过input函数输入,再通过调用print函数输出这些信息。运行结果如下:当 N的值改为1时,程序可以正常输出学生信息。但是当N>=2时,再运行时,屏幕总是提示你“please input scores of student %d:”。即使你已经输完了N个学生的信息,也不输出,只是一直调用input函数,请各位帮忙看看,程序哪里错了,是不是print函数的问题?并给予指出和修正,谢过!
#include <stdio.h>
#define N 5
struct student
 {char num;
 char name[10];
 int score[3];
}stu[N];
input(struct student stu[])
{int m,k;
for(m=0;m<N;m++)
 {printf("please input scores of student %d:\n",m+1);
   printf("NO.:");
   scanf("%d",&stu[m].num);
   printf("name:");
   scanf("%s",stu[m].name);
    for(k=0;k<3;k++)
     {printf("score %d:",k+1);
      scanf("%d",&stu[m].score[k]);
     }
   }
 }
 void print(struct student stu[])
 { int i,j;
  for(i=0;i<N;i++)
   {printf("%d,%s",stu[i].num,stu[i].name);
    {for(j=0;j<3;j++)
         printf(" %d ",stu[i].score[j]);}printf("\n");}
  }
main()
{
int i,j;
struct student stu[N];
printf("please input the records:\n");
for(i=0;i<N;i++)
input(stu);
print(stu);
getch();
}

柔术:打败对手的最好方法就是心狠手辣,因为对手不会给你太多机会,如果他够厉害!
2010-06-11 14:22
快速回复:挺简单的一个小问题,我没有注意,请大家指点,谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023889 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved