初学c语言数组,输入四个数,输出的为什么不对

#include<stdio.h>
main()
{
int i;
int a[4];
scanf("%d",&a[4]);
for(i=0;i<4;i++)
printf("%d",a[i]);
}

第1个回答  2013-04-04
数组越界了,而且不是输入4个数的。
==>
for(i=0;i<4;i++)
scanf("%d",&a[i]);追问

越界了, 什么意思

第2个回答  2013-04-04
scanf("%d",&a[4]);这行是不对的,首先a[4]就是不对的,只能到啊[3],其次,这语句只能输入一个数,应该用for语句输入,即:for(i=0;i<4;i++)
scanf("%d",&a[i]);
第3个回答  2013-04-04
你还要给输入加个循环
for(i=0;i<4;i++)

{
scanf("%d",&a[i]);

}
要不然你里面有4个数据,但是你只输入了A[4]这一个数据,他怎么显示的了全部呢?
再说你下从0开始,你输出只能看到A[0]-A[3]所以你给A[4]复制你也看不到。追问

为什么呢

追答

就是你原程序写的是给A[4]复制,你定义的是intA[4],里面确实有4个数据,但是A下标从0开始的
所以4个数据分别为A[0]-A[3]这4个数据,所以最后输出你只能看到这4个数据,A[4]你是看不到的;

本回答被提问者采纳
第4个回答  2013-04-04
输入数组的方法错了,你这样只能输入一次,而且输入的是a[4],显然越界了
for(i=0;i<4;i++)
scanf("%d",a+i); //也可以写成 scanf("%d",&a[i]);
第5个回答  2013-04-04
scanf("%d",&a[4]);你把所有的数输入到a【4】里了,你可以这样
for(i=0;i<4;i++)
scanf("%d",&a[i]);
要想连续输入的话可以用字符串与整型数之间的转换
char a[5];
int i;
scanf("%s",a);
for(i=0;i<4;i++)
printf("%c",a[i]);

C语言简单程序:输入四个数,按从小到大顺序输出
你好,你的代码有两处错误:首先定义数组时长度过小,你要对4个数排序所以数组的长度至少要为4。其次你对四个整数排序的算法错误,建议用冒泡法进行排序。下面是我在你的代码基础上改进过后的代码,在改动处我已作了注释,希望对你有帮助!include"stdio.h"void main(){int a[4],i,j,t; \/\/...

...定义的字符数组元素是两个,为什么给它输入四个汉字也就是十二个...
这段代码有一些问题,首先定义的字符数组并没有指定数组的长度,所以在输入的时候会出现数据溢出的问题,导致输出的内容不确定。其次,在输出字符数组的内容时,使用的是%s格式字符,它会以空字符(\\0)作为输出的结束符。由于没有对数组进行初始化,所以在输入数据之前存在于数组中的值都是随机的。如果输...

用c语言编程,输入四个数,判断这四个数据能否组成四边形和正方形,能了...
偌a>0和(且)a=12,则错。 这语句的意思是a=12,则错。a>0是多余的。回到你的问题,意思就是判断这四个数据能否组成正方形。程序如下:include<stdio.h> int main(){ float a,b,c,d;int m1,m2,m3;printf("请输入abcd四个数据:\\n");scanf("%f%f%f",&a,&b,&c,&d);m1=(a-...

如图,C语言输出的原数组显示为什么与输入的值不同啊?
第一个printf里的输出的内容不对 printf("%7d",a[i]);你要输出的是数组元素,不是元素的地址

c语言小白,请问为什么我的这段代码输出结果不正确?应该怎么改呢?求具...
1、这一块统计数量的代码其实老实说我都没看懂是什么意思,但是我测试了,输入13能统计出来是2,但是输入12345的时候统计就错了,这段并不能数出3来。2、第17行有问题,你每次循环都把max赋值为Num[0],按照你的代码来,输入13时,Num[0]的值为0,所以max初始值总是0,而且Num[9]也是0,所以...

输入四个数字,要求输出时按倒序输出,例如写完程序,执行时,输入了1234...
include<stdio.h> void main(){ int i = 0; char a[80]; \/\/声明数组 gets(a); \/\/输入 for( ; a[i] != '\\0'; i++); \/\/分析有效长度 for( ; i > 0; i--) printf("%c", a[i - 1]); \/\/反序输出 } ...

c语言新手求教,输入四个数,输出最大的数
其实我感觉最好把要比较的数放在一个数组里,如a[4],这样的话,只要用一个循环就可以了,不用这么多的代码.还有就是,C语言的运行是从上到下的,有时候会有判断条件会跳过,不过总的来说还是从上到下的

C语言:输入一个4位数,输出时每位数间空格
将四位数输入为字符串,而不是输入为整数,这样可使算法程序更为简单。参考代码如下:include <stdio.h>int main(){ char a[5];\/\/ 存放四位数的数组。 int i; scanf("%s",a);\/\/输入四位数。 for(i = 0; i < 3; i ++) printf("%c ", a[i]);\/\/输出前三位,每...

C语言中 输入四个整数,输出最小的那个数
your own getch, system("pause") or input loop *\/int main(int argc, char *argv[]) {int i=0,max,temp;printf("请输入四个整数:\\n");for(i;i<4;i++){scanf("%d",&temp);if(max<temp)max=temp;} printf("最大的整数是:%d",max);return 0;}打码不容易望采纳谢谢。。。

C语言,数组输入遇到问题求大神指教:哪里错了,如何改正,为什么会出现...
所以你那样写,第一次循环输入2回车,不会进入下一次循环,而是等待再次输入,然后你输入3的时候2被存储在元素1中,进入下一个循环,已经有3了还要等待输入,于是你输入4,实际保存的是3,所以后面都错位了,结果就是最后一个输入没有被保存。另外所有i循环都从0开始,包括冒泡排序。修改如下:include<...

相似回答