2 sinat 29178679 sinat_29178679 于 2015.07.09 15:14 提问

一个数字间加空格问题

#include
main()
{
int num1[4],num2[7],i;
for(i=1;i<=4;i++)
scanf("%d",&num1[i]);
for(i=1;i<=4;i++)
{
num2[2*i-1]=num1[i];
num2[2*i]=' ';
}
for(i=1;i<=7;i++)
printf("%d",num2[i]);
return 0;
}
我自己写的程序如上,比如输入8888,输出是8空格8空格8空格8这样的。程序编译不出错,但是出入四位数后无输出,烦请看下哪里出了错

4个回答

caozhy
caozhy   Ds   Rxr 2015.07.09 15:18
已采纳

还有一种改法就是把scanf的%d修改为%c

caozhy
caozhy 回复Dennisqj: 你输出的是数字
大约 3 年之前 回复
sinat_29178679
sinat_29178679 谢谢,意思应该是说必须把它看成字符才能在两个字符间加上空格,对吧
大约 3 年之前 回复
caozhy
caozhy 回复sinat_29178679: 一个是数字,一个是字符。字符是数字的ascii码,而不真的是值。
大约 3 年之前 回复
sinat_29178679
sinat_29178679 果然可以了,不过这是为什么啊
大约 3 年之前 回复
caozhy
caozhy   Ds   Rxr 2015.07.09 15:15

num2[2*i-1]=num1[i];
->
num2[2*i-1]=(char)(num1[i] + '0');

frank_20080215
frank_20080215   2015.07.09 15:43

把scanf的%d修改为%c,请采纳caozhy建议

John_ToString
John_ToString   2015.07.09 20:32

#include
main()
{
int num1[4],num2[7],i;
for(i=1;i<=4;i++)
scanf("%d",&num1[i]);
for(i=1;i<=4;i++)
{
num2[2*i-1]=num1[i];
num2[2*i]=' ';
}
for(i=1;i<=7;i++)
printf("%d",num2[i]);
return 0;
}
我自己写的程序如上,比如输入8888,输出是8空格8空格8空格8这样的。程序编译不出错,但是出入四位数后无输出,烦请看下哪里出了错

当然不仅仅是修改输出格式的问题,因为这不是重点,你需要学会的是编程风格的形成,而不是一个小问题的解决。
粗看了一下你的代码,明显的错误就是数组越界问题,这样子好的时候会产生意外的结果,坏的时候会程序崩溃,所以养成一个好的编程习惯很重要。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
一个字符串在其中的数字和字母之间插入空格
一个字符串在其中的数字和字母之间插入空格作者: 周建东  日期: 2007-06-22 06:06字体大小: 小 中 大          string str = "123abc456def";         str = System.Text.RegularExpressions.Regex.Replace(str, @"(/d)([a-zA-Z])", "$1
Django实例--英文、数字与中文之间增加空格
需求: 有一段文本,为了显示美观,需要在中文与英文之间,中文与数字之间,前后加上空格。 例如:2015年6月19日 转换后:2015 年 6 月 19 日前提: 1、Python2.7环境 2、系统:Ubuntu14 3、数据库:Mysql一、搭建Django环境 sudo apt-get install python-Django二、创建一个文件夹,用于存放项目 sudo mkdi
C语言进阶之路-----用函数使字符串间每个字符后加一个空格
#include #include #include int main() { void tianjia_kong(char x[],char y[]); char a[80]; char b[80]={0}; gets(a); tianjia_kong(a,b); puts(b); return 0; } void tianjia_kong(char x[],char
设计一个函数,输入一个4位数字,要求输出这4个数字字符,但每个数字间空一个空格。
设计一个函数,输入一个4位数字,要求输出这4个数字字符,但每个数字间空一个空格。例如:输入2011,输出为2011;#include &amp;lt;stdio.h&amp;gt; void fun(int n){ int chu,j,i = 0; int a[10] = {0}; chu = n; while(chu != 0){ a[i] = chu % 10 ; chu = chu / 1...
写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出"1 9 9 0"。
题目描述 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出"1 9 9 0"。 输入 一个四位数 输出 增加空格输出 样例输入 1990 样例输出 1 9 9 0 方案一: //用数组存储输入的数据 #include #include int main() {   
【c语言】输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如:1990->1 9 9 0
#include #include int main() { void insert(char[]); char str[80]; printf("input digits:"); scanf("%s",str); insert(str); return 0; } void insert(char str[]) { int i; for(i=strlen(str);i>0;i
习题 7.8 写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入1990,应输出“1 9 9 0”。
C程序设计(第四版) 谭浩强 习题7.8 个人设计习题 7.8 写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入1990,应输出“1 9 9 0”。代码块:#include <stdio.h>char addsp(int x, char y[]);main() { int a; char b[7]; scanf("%d", &a);
js正则表达式-4个数字之间相隔空格
\s:匹配任何空白字符,包括空格、制表符、换页符等等,等价于[\f\n\r\t\v]。 \D:匹配非数字 \d:匹配数字 {}:一般表示匹配长度,举例子:\s{3}表示匹配三个空格,\s[1,3]表示匹配1-3个空格 $1:配合()使用,选择第一个() trim():去掉字符串首尾空格 type="text/javascript"> var str=' QW456026BR
Android EditText添加数字自动加空格显示
第一次写博客写的对与不对大家多多见谅~~也希望大家批评指正~~~ 做开发有两年了,之前因多种原因,主要因为个人学习习惯不好。现在决定将自己工作中遇到的问题,个人认为有用的知识点整理在博客中。做个人学习总结,算是工作中的笔记吧~~~~ 需求一:EditText输入取货码券码做四位分割,删除过程中也自动四位分割。主要都是逻辑: 给EditText添加TextWatcher方法 ,在onTextC
QT中将字符串转换为每两个字符添加一个空格的格式
因为输入框lineEdit中为一串连续的不定长数字(例如051234567890,其中第一个字符代表后面数据的长度, 每两个字符为一个十六进制的数字),需要将其解析为05 12 34 56 78 90(每两个字符中间加一个空格)的 格式发送给串口。 以下是我写的代码(仅贴出实现功能部分): int i = 0; Qstring send_data = "";