pengpengniuniu 发表于 2022-11-19 23:55:57

C语言二维数组问题请教

如何做到输入三行文字,每行最多40个字符存进一个二维数组中。
不明白如何形成三行,怎么样能形成换行的效果呀,和怎么要求每行不超过40个字符呀,如果的话那空余的不就补零了吗,和想要的就不一样了呀

jackz007 发表于 2022-11-20 00:25:23

本帖最后由 jackz007 于 2022-11-20 01:46 编辑

      最多 40 个的意思就是 1 ~ 40
#include <stdio.h>

int main(void)
{
      char c , s = {0}          ;
      int i , j , k , m                ;
      for(i = 0 ; i < 3 ;) {
                for(j = 0 ; (c = getchar()) != '\n' && j < 40 ; j ++) {
                        s = c      ;
                }
                if(j) i ++               ;
      }
      printf("\n")                     ;
      for(i = 0 ; i < 3 ; i ++) {
                for(j = 0 ; s && j < 40 ; j ++) {
                        putchar(s) ;
                }
                putchar('\n')            ;
      }
}
      编译运行实况:
D:\\C>g++ -o x x.c

D:\\C>x
ABCDEFG
12345678
abcdefghjiklmn

ABCDEFG
12345678
abcdefghjiklmn

D:\\C>

竹逸 发表于 2022-11-20 09:28:29

jackz007 发表于 2022-11-20 00:25
最多 40 个的意思就是 1 ~ 40

      编译运行实况:

我觉得if(j)i++的上面加上一条清空输入流的语句比较好,考虑到输入的第一条字符串里有可能出现大于40个字符的情况,不清空输入流会出现第一条字符串里剩余的字符存储到第二个数组里{:10_254:}
页: [1]
查看完整版本: C语言二维数组问题请教