回 帖 发 新 帖 刷新版面

主题:程序调试

#include<stdio.h>
void main()
{
  int i,j,a[10][5];
  char b[10];
  char c[5];
  void sga(char b[10],int a[][5]);  /*求学生平均成绩的函数*/
  void cag(char c,int a[][5]);      /*求各科平均成绩的函数*/
  void pri(char b,char c,int a[][5]);  
  printf("input students name\n");
  for(i=0;i<10;i++)
     scanf("%c",&b[i]);
  printf("please input xk\n");
  for(i=0;i<5;i++)
     scanf("%c",&c[i]);
  printf("input student gerad\n");
  for(i=0;i<10;i++)
    for(j=0;j<5;j++)
      scanf("%d",&a[i][j]);
}
void sga(char b[10],int a[][5])
{
  int i,j,sum;
  float aver;
  for(i=0;i<10;i++)
  {
   printf("students name%c",b[i]);
    for(sum=0,j=0;j<5;j++)
      sum=sum+a[j][i];
    aver=sum/5.0;
    printf("aver grade is%5.2f",aver);
    printf("\n");
  }
}
void cga(char c[10],int a[][5])
{
  int i,j,sum;
  float aver;
  for(i=0;i<5;i++)
  {
  printf("xk%c",c[i]);
  for(sum=0,j=0;j<10;j++)
    sum=sum+a[j][i];
    aver=sum/10.0;
    printf(" aver gread%5.2f\n",aver);
  }
}
void pri(char b,char c,int a[][5])   /*c[i]学生姓名数组*/
{
  int i,j;
  for(i=0;i<10;i++)
  {
     printf("%c",b[i]);                       /*b[i]学科数组*/
   for(j=0;j<5;j++)
     printf("%cgread is%d",c[i],a[i][j]);  
     printf("\n");
  }
}



随给找找这个程序问题在哪???

回复列表 (共5个回复)

沙发

哪位高手顺便再给讲讲 printf输出函数的详细的要求          争取比老谭的那本书的知识在多一点·····谢了···

板凳

void cag(char c,int a[][5]);  这是你的声明
void cga(char c[10],int a[][5])这是你的定义
而且你的函数声明定义完没调用

void pri(char b,char c,int a[][5])   /*c[i]学生姓名数组*/
{
  int i,j;
  for(i=0;i<10;i++)
  {
     printf("%c",b[i]);                       /*b[i]学科数组*/
   for(j=0;j<5;j++)
     printf("%cgread is%d",c[i],a[i][j]);  
     printf("\n");
  }
}
这个函数里传的是两个char,实际企图调用两个char[]

3 楼

printf其实老谭的书已经对一般使用讲得差不多了,剩下的就是积累使用经验,熟能生巧的问题。书永远只能讲语法,经验永远只是个轨迹,你得实践了才是自己的

4 楼

#include<stdio.h>
void main()
{
  int i,j,a[10][5];
  char b[10];
  char c[5];
  void sga(char b[10],int a[][5]);
  void cag(char c[5],int a[][5]);       /*修改了*/
  void pri(char b[10],char c[5],int a[][5]);   /*修改了*/
  printf("input students name\n");
  for(i=0;i<10;i++)
     scanf("%c",&b[i]);
  printf("please input xk\n");
  for(i=0;i<5;i++)
     scanf("%c",&c[i]);
  printf("input student gerad\n");
  for(i=0;i<10;i++)
    for(j=0;j<5;j++)
      scanf("%d",&a[i][j]);
}
void sga(char b[10],int a[][5])
{
  int i,j,sum;
  float aver;
  for(i=0;i<10;i++)
  {
   printf("students name%c",b[i]);
    for(sum=0,j=0;j<5;j++)
      sum=sum+a[j][i];
    aver=sum/5.0;
    printf("aver grade is%5.2f",aver);
    printf("\n");
  }
}
void cga(char c[5],int a[][5])   /*修改了 */
{
  int i,j,sum;
  float aver;
  for(i=0;i<5;i++)
  {
  printf("xk%c",c[i]);
  for(sum=0,j=0;j<10;j++)
    sum=sum+a[j][i];
    aver=sum/10.0;
    printf(" aver gread%5.2f\n",aver);
  }
}
void pri(char b[10],char c[5],int a[][5])   /*c[i]学生姓名数组   修改了*/
{
  int i,j;
  for(i=0;i<10;i++)
  {
     printf("%c",b[i]);                       /*b[i]学科数组*/
   for(j=0;j<5;j++)
     printf("%cgread is%d",c[i],a[i][j]);  /* printf  引用数组 */
     printf("\n");
  }
}

  编译过去了  但是还有个问题,输入的时候该怎么输入???中间有没有空格不一样吧??

还有这种输入有什么要求???

5 楼

输入格式是你自己写的。默认的分割符就是空字符,比如回车,空格等

我来回复

您尚未登录,请登录后再回复。点此登录或注册