F–Social 发表于 2020-10-6 11:35:53

萌新,关于二维数组的问题ovo

本帖最后由 F–Social 于 2020-10-6 11:41 编辑

额。。。。
各位大神们,你们好。
那啥,就。。。上了小甲鱼的二维数组的课,然后就想写一个课程表的,我想实现的结果是这样的:

            星期一   星期二星期三星期四星期五星期六

             语文       数学      英语   物理   化学   生物

就我想先实现这一行先ovo
然后下面是我写的代码:

char lesson;
        int x,y;
        printf("请输入这个礼拜的课程:");
       
        for (x = 0 ; x < 1; x++)
        {
                for (y = 0; y < 6 ; y++)
                {
                        scanf("%s",&lesson);             //让用户输入相应课程
                }
        }
    printf (" 星期一 星期二星期三星期四星期五星期六\n");
        for (x = 0 ; x < 1; x++)
        {
                for (y = 0; y < 6 ; y++)
                {
                        printf("%s",lesson);
                }
        }
       

但奇怪的是,我输入了   “英语 数学 语文 物理 生物 化学” 后,它并没有停下,而是还要继续输入,停不下来啊~~~~~~~
如果有其他点子,也可以让我这个小白了解了解(⊙o⊙)
希望大神们指教,拯救一下这个萌新.........

小甲鱼的铁粉 发表于 2020-10-6 12:04:32

本帖最后由 小甲鱼的铁粉 于 2020-10-6 12:07 编辑

你这是%s的用法用错了
#include<stdio.h>
#include<stdlib.h>
int main()
{
    char lesson;
      int x,y;
      printf("请输入这个礼拜的课程:");
      
      for (x = 0 ; x < 6; x++)
      {

                scanf("%s",lesson);             //让用户输入相应课程
      }
    printf (" 星期一 星期二星期三星期四星期五星期六\n");
      for (x = 0 ; x < 6; x++)
      {
            printf("%s ",lesson);
      }
    system("pause");
}

小甲鱼的铁粉 发表于 2020-10-6 12:06:53

scanf("%s",a)的用法,其中a为一个一维字符数组的首地址或者二维字符数组里面的每个一维首地址。
不是像你上面那个一个一个输入的,它是直接输入一个字符串
scanf("%s")输入时遇到空格就停止当前的输入。

小甲鱼的铁粉 发表于 2020-10-6 12:08:55

scanf("%s",lesson);
像这个lesson就是一个首地址,比如lesson就是lesson的首地址,输入的整个字符串存储在lesson中

风过无痕1989 发表于 2020-10-6 12:12:34

首先,你的程序缺少:#include<stdio.h> 这个头函数,缺少 char main() 这个主函数;其次,应该定义一个二行六列的数组,第一行存放星期,第二存放课程,即 char lesson,然后再来考虑将将星期与对应的课程输入到数组,最后输出

具体程序你先自己写,这叫授人以鱼,不如授人以渔。晚上若你还没写好,下午我下班后,若没有其他朋友帮你写出来,我再来帮你写

happy含笑 发表于 2020-10-6 13:11:13

巴巴鲁 发表于 2020-10-6 15:16:11

风过无痕1989 发表于 2020-10-6 12:12
首先,你的程序缺少:#include 这个头函数,缺少 char main() 这个主函数;其次,应该定义一个二行六列的数 ...

这句授人以鱼,不如授人以渔讲的真好
我有时感觉有的鱼油太懒了,明明方法(有时是错误)讲出来了(而且我回答的比别人早了几个小时),最佳给了有完整代码的

F–Social 发表于 2020-10-6 15:24:52

风过无痕1989 发表于 2020-10-6 12:12
首先,你的程序缺少:#include 这个头函数,缺少 char main() 这个主函数;其次,应该定义一个二行六列的数 ...

嗯嗯,我写了好久都没有写出来(太笨了),主要是我不知道怎么把星期与对应的课程输入到数组里面ovo
就.....蒙圈了,期待您的赐教{:5_109:}

F–Social 发表于 2020-10-6 15:26:17

小甲鱼的铁粉 发表于 2020-10-6 12:04
你这是%s的用法用错了

好的,好的,又学会一个知识点,感谢{:5_109:}

风过无痕1989 发表于 2020-10-6 15:27:49

巴巴鲁 发表于 2020-10-6 15:16
这句授人以鱼,不如授人以渔讲的真好
我有时感觉有的鱼油太懒了,明明方法(有时是错误)讲出来了(而且 ...

这也不能完全怪他们,能坐享其成的,谁不愿意呢,但愿他们问的问题得到答案后,还会去独立思考一下,为什么会是这样?

同时,我也希望他们得到满意的答案后,别忘了给予他帮助的人,兴手之劳,选择正确的最佳答案,别让帮助他的人寒心

F–Social 发表于 2020-10-6 15:29:03

巴巴鲁 发表于 2020-10-6 15:16
这句授人以鱼,不如授人以渔讲的真好
我有时感觉有的鱼油太懒了,明明方法(有时是错误)讲出来了(而且 ...

还没呢,还没呢,在等讲解:如何把 星期和课程 输入到二维数组里面,再输出。

F–Social 发表于 2020-10-6 15:29:57

风过无痕1989 发表于 2020-10-6 15:27
这也不能完全怪他们,能坐享其成的,谁不愿意呢,但愿他们问的问题得到答案后,还会去独立思考一下,为什 ...

会的,会的

风过无痕1989 发表于 2020-10-6 15:38:34

本帖最后由 风过无痕1989 于 2020-10-6 15:42 编辑

F–Social 发表于 2020-10-6 15:29
还没呢,还没呢,在等讲解:如何把 星期和课程 输入到二维数组里面,再输出。

定义的二维数组,就用二重循环,将数据写入数组中去,例如:

char temp;
for(i = 0;i < 2;i++)
{
    for(j = 0; j < 6;j++)
    {
      scanf("%s",&temp);
      lesson[ i ] = temp;   这里要注意那个 [ i ],字符 i 的两侧都空了一个格,不然就会(使文字隐去)变成斜体,复制到程序中去时,要去年两侧的空格
    }
}

风过无痕1989 发表于 2020-10-6 15:39:11

F–Social 发表于 2020-10-6 15:29
会的,会的

这是我与他在聊天,可不是说你,你别介意

巴巴鲁 发表于 2020-10-6 15:53:19

F–Social 发表于 2020-10-6 15:29
还没呢,还没呢,在等讲解:如何把 星期和课程 输入到二维数组里面,再输出。

楼主,我可没有说你,我们只是在聊天{:10_301:}
页: [1]
查看完整版本: 萌新,关于二维数组的问题ovo