ahr123 发表于 2018-12-31 16:53:23

新人求助 带你学习带你飞 20课课后题

#include <stdio.h>
#include <string.h>

#define NUM 5

int main()
{
      char slogan;
      int i, j, ch, min, max, temp;

      for (i = 0; i < NUM; i++)
      {
                printf("请输入%d句话:", i+1);
                for (j = 0; (ch = getchar()) != '\n'; j++)
                {
                        slogan = ch;
                }
                slogan = '\0';
      }

答案代码如图 ch不是int型吗 ,为啥能放入char型数组里呢,希望明白的大佬解释下

ahr123 发表于 2018-12-31 16:58:15

#include <stdio.h>
#include <string.h>
#define maxsize 1024

int main()
{
      char slogan;
      int i = 0,j = 0,ch;
      printf("请输入1句话:");
      while((ch=getchar())!='\n')
      {
              for(i = 0 ;; i++)
              slogan=ch;
                }
               
                for(i = 0 ;i < 1;i++)
                {
                        for(j = 0 ; slogan!='\0';j++)
                        {printf('%c',slogan);
                        }
                        putchar('\n');
                }
      return 0;
}

为啥我的就编译不通过呢 大概显示是数组是char型,不能赋值int型,感觉差不多呀

BngThea 发表于 2018-12-31 17:01:45

有些编译器严格一些,将ch定义成char就行了

ahr123 发表于 2018-12-31 17:10:57

不是 我把标准答案打进去 编译通过了 我自己的通不过,想不通差别在哪~求大佬帮助

ba21 发表于 2018-12-31 19:18:26

你回头去看一下ASCII对照表。
然后
char a = 'f';
printf("%d\n", f);
printf("%c\n", f);

int a = 102
printf("%d\n", f);
printf("%c\n", f);

你看能不能明白。

ahr123 发表于 2018-12-31 19:23:21

ba21 发表于 2018-12-31 19:18
你回头去看一下ASCII对照表。
然后
char a = 'f';


懂你的意思大概,就是char型 f 实际用int型表示是 102;可是为什么我的编译通过不了呢 跟标准答案质的差别在哪呢?烦请大神帮忙看一下

ba21 发表于 2018-12-31 19:35:46

ahr123 发表于 2018-12-31 16:58
#include
#include
#define maxsize 1024


如果是说你的代码编译不过。
你先看看你的代码是什么玩意再说。不知道别人是否能看懂,反正我是看不懂。

1楼是教程中的,2楼是你的对吧。

ahr123 发表于 2018-12-31 19:41:25

ba21 发表于 2018-12-31 19:35
如果是说你的代码编译不过。
你先看看你的代码是什么玩意再说。不知道别人是否能看懂,反正我是看不懂。 ...

好吧,不好意思咯~

ahr123 发表于 2018-12-31 19:45:50

找出来了~~原来是printf里的双引号打成单引号了~~
页: [1]
查看完整版本: 新人求助 带你学习带你飞 20课课后题