df3379 发表于 2019-6-19 15:31:53

数组调用错误

#include <stdio.h>
/*设计一个程序
显示宝宝班及贝贝班各班名称及各班人数
*/

int main(void)
{
        int i={16,18,19,20,22};//a组班级有5个班及各班人数
        int j={18,17,18,21,26};//b组班级5个班及各班人数
   
    int val;
   
        do
        {
               
       printf("请输入您想查询的班级代码:宝宝输入1,贝贝输入2:\n");
       
   scanf("%d",&val);
      while(getchar()!='\n');
   switch(val)
       {
   case 1:
       printf("宝宝班人数:%d %d %d %d %d\n",i);
       break;
       
       case 2:
       printf("贝贝班人数:%d %d %d %d %d\n",j);
       break;
       }
        }
   while('%d');//返回do函数,重新开始循环
        return 0;
}

两个班级人数输出显示不正常,数据大了很多。死活没找到原因

风扫地 发表于 2019-6-19 15:35:48

定义的时候是 int i   用的时候索引元素时就只有 i i i i i

printf("宝宝班人数:%d %d %d %d %d\n",i);要求输出5个,只给了一个也就算了,还给了个越界的。。。过来挨打。

df3379 发表于 2019-6-19 15:39:40

本帖最后由 df3379 于 2019-6-19 15:41 编辑

风扫地 发表于 2019-6-19 15:35
定义的时候是 int i   用的时候索引元素时就只有 i i i i i

printf("宝宝班人数:%d...

那应该怎样写?如果写成printf("宝宝班人数:1班%d人 2班%d人 3班%d人 4班%d人 5班%d人\n\n",i i i i i);就会提示错误

我就是个弟弟 发表于 2019-6-19 15:41:18

#include <stdio.h>


int main(void)
{
    int i= {16,18,19,20,22}; //a组班级有5个班及各班人数
    int j= {18,17,18,21,26}; //b组班级5个班及各班人数

    int val;

    do
    {

      printf("请输入您想查询的班级代码:宝宝输入1,贝贝输入2:\n");

      scanf("%d",&val);
      while(getchar()!='\n');

      int index;
      switch(val)
      {
      case 1:
//            printf("宝宝班人数:%d %d %d %d %d\n",i); 喝车不开酒
            printf("宝宝班人数:");
            for (index = 0; index < 5; ++index) {
                printf("%d ", i);
            }
            printf("\n");
            break;

      case 2:
//            printf("贝贝班人数:%d %d %d %d %d\n",j); 开酒不喝车
            printf("贝贝班人数:");
            for (index = 0; index < 5; ++index) {
                printf("%d ", j);
            }
            printf("\n");

            break;
      }
    }
    while('%d');//返回do函数,重新开始循环
    return 0;
}

我就是个弟弟 发表于 2019-6-19 15:41:57

需要复习,数组的遍历

df3379 发表于 2019-6-19 15:48:59

我就是个弟弟 发表于 2019-6-19 15:41


如果我想显示具体哪个班的数据呢?例如:printf("宝宝班人数:1班%d人 2班%d人 3班%d人 4班%d人 5班%d人\n",i)//最后这个代码请无视。我只是举例说明,输出显示效果

风扫地 发表于 2019-6-19 15:56:58

printf("宝宝班人数:1班%d人 2班%d人 3班%d人 4班%d人 5班%d人\n",i,i,i,i,i);

df3379 发表于 2019-6-19 15:57:06

#include <stdio.h>
/*设计一个程序
显示宝宝班及贝贝班各班名称及各班人数
*/

int main(void)
{
        int i={16,18,19,20,22};//a组班级有5个班及各班人数
        int j={18,17,18,21,26};//b组班级5个班及各班人数
   
    int val;
   

        do
        {
               
       printf("请输入您想查询的班级代码:宝宝输入1,贝贝输入2:\n");
       
   scanf("%d",&val);
      while(getchar()!='\n');
   switch(val)
       {
   case 1:
       printf("宝宝班人数:1班%d人 2班%d人 3班%d人 4班%d人 5班%d人\n\n",i,i,i,i,i);
          break;
       
       case 2:
       printf("贝贝班人数:1班%d人 2班%d人 三班%d人 4班%d人 5班%d人\n\n",j,j,j,j,j);
       break;
       }
        }
   while('%d\n');//返回do函数,重新开始循环
        return 0;
}

我最终想要的是这个效果!谢谢大佬们的提点。就是我的语法用错了。输入语句之前用空格,本来该用逗号就行的。{:5_100:}

我就是个弟弟 发表于 2019-6-19 16:07:55

df3379 发表于 2019-6-19 15:48
如果我想显示具体哪个班的数据呢?例如:

还需要学习,数组和指针的相关只是。非常重要。我C语言不精通,没有资格教别人
页: [1]
查看完整版本: 数组调用错误