解题思路:
用控制格式while((scanf("%d",&a[i]))!=EOF)输入整数;

循环打印出ascii码对应字符;


注意事项:

#include<stdio.h>

int main()
{
 char c;
 int a[100],i=0;

do
{
   scanf("%d",&a[i]);
   i++;
}while((c =getchar())!=EOF);

for(int j=0;j<i-1;j++)
  printf("%c",a[j]);

return 0;
}


这样写错误。


参考代码:

#include<stdio.h>

int main()
{
 char c;
 int a[100],i=0;

while((scanf("%d",&a[i]))!=EOF)
{

   i++;

}

for(int j=0;j<i;j++)
  printf("%c",a[j]);

return 0;
}


点赞(45)
 

0.0分

84 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 54 条评论

沧浪 4年前 回复TA
@沧浪 @18870773891 我测试过数据了。。都对
未来程序员 5年前 回复TA
@一位热心的老大爷 s[20]={&#039;/0&#039;}也不用
未来程序员 5年前 回复TA
@一位热心的老大爷 不用s[i++],数组第一个下标是0
一位热心的老大爷 5年前 回复TA
谁能告诉这段代码为什么显示运行错误30%????
#include <stdio.h>

int main(){
	int c;
	char s[20]={'\0'};
	int i=0;
	
	while(scanf("%d",&c) != -1)
		s[i++]=c;
	s[i]='\0';
	puts(s);
	return 0;
}
19rj545 5年前 回复TA
@19rj545 不给注释的都是祖传代码
19rj545 5年前 回复TA
能不能给个注释
不时后会 5年前 回复TA
@沧浪 =b-1;i++)emmmm,不知道为什么总是会少后面一部分
不时后会 5年前 回复TA
@沧浪 如果改为for(i=0;i<b-1;i++)就对了
不时后会 5年前 回复TA
@沧浪 第一次输入就输入EOF,循环结束,b=1。虽然你并没有输入数据,但是在后面的for循环中,依然要输出一个数据,所以就错了。如果改为for(i=0;i<b-1;i++)就可以了
沧浪 5年前 回复TA
@手残 1楼不是说了吗