C语言编程,用for循环和scanf输入数组,一点回车电脑就报错(只能输两行),求高手指点。

作者&投稿:钦叶 (若有异议请与网页底部的电邮联系)
c语言for循环输入数组问题~

int a[5];//开辟的空间只有5个,容纳不下6个int型数字,导致数组下票越界,
这样的话,程序就跑飞了,出什么异常都可能的。

int n;
int a[100],i = 0;
for( i= 0; ;i++)
{
printf("请输入数字:(-1代表结束)
");
scanf("%d",&a[i]);
if(a[i] == -1)
break;
}
输出的时候也使用n做判断条件,这样就好了。

楼上的人虽然都很热心,可惜他们的代码要么是都没有经过测试就写上来,要么是牛头不对马嘴的乱贴代码上来。
你没贴代码上来,从你说的情况看来,你的问题出现在scanf函数上,这个函数你一定要小心使用,举个例子:
int a;
scanf("%d", &a); //后面一定是&a,不能是a,&a代表a的内存地址,scanf要求输入数据是存入a的内存地址。
对于数组也一样,比如一个10个元素的数组,你要从键盘输入。你可以这样:
int a[10];
int i;
for(i = 0; i < 10; ++i)
{
scanf("%d", &a[i]) //这里也可以写a + i但是从风格上说,不推荐这种不直观的风格
}

1.首先你有没有写 #include<stdio.h>在开头?
2.你在键盘的输入是否和你的参数一致?
3. 下面的细节是否有注意到?scanf()中的变量必须使用地址。scanf()的格式控制串可以使用其它非空白字符,但在输入时必须输入这些字符。在用"%c"输入时,空格和“转义字符”均作为有效字符。
4.例子
.#include <stdio.h>
void main() {
int i;
for(i = 0;i < 10;i++) {
scanf(" %c",a[i]); }
}

#include <stdio.h>
#define N 100
void main()
{
int i,k,m,n,num[N],*p;
printf("请输入人数.\n");
scanf("%d",&n);
if(n>0&&n<=32767)
{
p=num;
for (i=0;i<n;i++) *(p+i)=i+1;//从1到n为每个人编号
i=0; //i为每次循环时的计数变量
k=0; //k为123报数时代计数变量
m=0; //m为退出的人数
while(m<n-1) //退出的人数比n-1少时做循环
{
if(*(p+i)!=0) k++;
if (k==3) //退出的人都值变为0
{
*(p+i)=0;
k=0;
m++;
}
i++;
if(i==n) i=0; //报道尾后i恢复为0
}
while (*p==0) p++;
printf("%d\n",*p);
}
else printf("输入错误\n");
}

把代码贴出来看看。给你一个能输入的 例子。
for(i=0;i<5;i++)
{scanf("%d ",a[i]);
}

你总要把代码贴上来把


C语言编程中for语句中如何表示值增加2
for语句的格式如下:for(表达式1,表达式2,表达式3){ 循环语句 } 可以通过表达式3来表示值增加2,如:int i, a=0;for(i=0; i<5; i=i+2) \/\/ 通过表达式3,即i=i+2来表示值增2{ a = a + i;}\/\/ 程序执行完后,a的值为6(即0+2+4=6)可以用下面的方式来实现:int i, ...

用C语言编写程序:采用for循环编程输出各位数字之和是5的三位数(100~9...
include <stdio.h> int main(){ int bai,shi,ge;int i;for(i=100;i<=999;i++){ bai = i \/ 100;shi = i % 100 \/ 10;ge = i % 10;if(bai+shi+ge == 5){ printf("%d\\n",i);} } return 0;}

for语句后面为啥加分号
不执行其他,也就是不带循环体语句。for后面跟的是循环体。如果不需要有循环体,也就是for括号里面的三句就可以完成所有功能那么就加个分号,表示循环体为空。比如 :求字符串s的长度for(len=0;s[len]; len++);这个, 单独for里面的三句就完成了所有功能, 不需要循环体, 加分号。

用for循环语句求出1~1000之间所有偶数的和
for循环不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定的而只给出循环结束条件的情况,它完全可以代替while循环。for语句最简单的应用形式,也是最容易理解的形式为:for(循环变量赋初值;循环条件;循环变量增值)语句。用for语句编程更加简单、方便。

for语句嵌套的执行顺序是怎样的?
当两个或多个循环语句嵌套时,执行顺序按照一下步骤:1、先判断最外层循环条件,若满足条件则进入第一层循环体。2、进入第一层循环体后再次遇到循环语句进行第二层循环条件判断,若符合判断条件,进入第二层循环体。3、若有更多层的循环体嵌套,依照上述方法依次判断是否进入循环体。4、由内而外执行...

for 循环语句的使用方法
以C语言为例for循环的一般形式为:for(语句1 ; 语句2 ; 语句3 )执行时,先执行一次语句1(注意只执行一次)之后判断语句2是否成立 1、如果成立执行循环体,之后执行语句3。再返回语句2判断条件是否成立?成立执行循环体后再执行语句3,如此直到循环体不成立则跳出循环 2、如果语句2不成立,则不执行...

c语言中while和for编程有哪些区别?
在不明确具体循环次数(条件)的时候用while,在明确循环次数(条件)的时候则习惯用for 另外就是【当型循环】和【直到性循环】的区别 【当型循环】(先判断)当条件满足时执行下一条语句;【直到性循环】(先执行)直到条件不成立时再进行下一条语句;它们的区别在于:【当型循环】只有当条件满足时...

C语言:用for循环语句编程输出1—20之间的所有整数,两数之间以空格分隔...
for(i=max;i>0;i--)printf("%d ",i);} \/*3、输出A-Z*\/ int main(int argc, char **argv){ char min='A',max='Z';char i;for(i=min;i<=max;i++){ printf("%c ",i);if((i-min+1)%8 == 0)printf("\\n");} } \/*4、输出100~200之间所有能被3和7整除的数(每...

C语言编程:使用for循环输出如下图形
记着输入*最多的个数n即可,还可以实现客户重新输入 include<iostream> using namespace std;int main(){ int i,k,j,n;char a;do { cout<<"请输入你所要图形*最多为n:";cin>>n;for(i=1;i<=n;i++){ for(k=1;k<=n-i;k++)cout<<"";{ for(j=1;j<=i;j++)cout<<"";...

c语言用for循环编程:从键盘上输入任意一串字符,仅输出其中的小写字母...
define MAX_STRLEN 50 \/* 宏定义,可根据自己的需要进行修改 *\/ void main( ){ int i = 0 ; \/* 定义一个整型变量 *\/ unsigned char my_string[MAX_STRLEN] ; \/* 定义一个字符串数组 *\/ gets(my_string) ; \/* 从键盘上输入任意一个字符串,长度不要超过 MAX_STRLEN *\/ for( i = ...

灯塔市17311861525: c语言编程求1到n中能被3或7整除的数之和.分别用for循环语句和while循环语句完成本题. -
郜庆羟基:[答案] #include /*用for循环实现*/ void main() { \x09int n; \x09int m; \x09printf("please input n\n"); \x09scanf("%d",&n); \x09for(int i = 1; i

灯塔市17311861525: c语言的for循环和if还有scanf用法. -
郜庆羟基: #include<stdio.h> void main() {int a=0;float b=0,temp=1;for(;temp>0;){printf("输入数字:");scanf("%f",&temp);if(temp<=0)break;if(temp-(int)temp==0.0)a=temp;elseb=temp;}printf("a=%d,b=%.3f",a,b); }

灯塔市17311861525: c语言for循环用scanf输入字符是怎样运行的 -
郜庆羟基: 楼主的代码有三个问题, 第一是for(i=1;i<3;i++); 这句不应该由分号结尾,这样的话后面的语句不会是for的一部分.第二:case '0':printf("another\n");后面应有break. 原因是,如果k为0,这句执行之后,case '1'中的语句同样会执行.第三:for(i=1;i<3;i++)只会循环两次,因此不会出现楼主所说的三个结果

灯塔市17311861525: c语言中for语句是怎么用的 -
郜庆羟基: c语言中for语句用法: for是C语言中的一个关键字,主要用来控制循环语句的执行. 举例: int i; for(i=0; i<3; i++) // i=0是初始化部分;i<3是循环判断条件部分(当满足此条件时才进入执行for循环中的语句);i++是执行完循环体语句后的操作 { printf...

灯塔市17311861525: c语言关于for循环的题目 -
郜庆羟基: #include "stdio.h" void main() { int n,d60=0,i,cj,z=0; float av; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&cj); if(cj>=60)d60++; z+=cj; } av=z*1.0/n; printf("%d个人中成绩大于等于60的人有%d个,平均成绩(两位小数)为%5.2f\n",n,d60,av); }有什么问题请留言.

灯塔市17311861525: c语言编程计算1!+2!+3!+4!+5!(用for的双层循环),请教大家 -
郜庆羟基: #include "stdio.h" int main() { int i,j;int sum=0,t;for(i=1;i<=5;i++){ t=1;for(j=1;j<=i;j++){t=t*j;}sum=sum+t;}printf("%d\n",sum); } 楼上的楼上第二次循环没有为t赋初值 楼上sum=s+sum; 语句应该在二次FOR循环的外面

灯塔市17311861525: C语言编程,用一个for循环打印菱形 -
郜庆羟基: # include<stdio.h> # include<stdlib.h> void main() { int i,j,a,b,n; printf("please enter size"); scanf("%d",&n); for(i=1;i<n;i++) { for(j=1;j<=n+i-1;j++) if(j==n-i+1 ||j==n+i-1) printf("*"); else printf(" "); printf("\n"); } for(i=1;i<=2*n-1;i++) printf("*...

灯塔市17311861525: C语言,怎么用for循环计算平方和 -
郜庆羟基: for(i=1;i<=n;i++) //比如n=32result=result*2;如需完整代码可继续追问

灯塔市17311861525: 请教C语言中循环语句for的执行过程,谢谢!! -
郜庆羟基: 举个例子说:for(i=0;i<10;i++),它的执行过程就是这样的:1,使i=0.然后判断i是否小于10 ,则执行i<10的判断语句.若成立就执行for所带的循环体,不成立就跳出循环执行后面的语句. 2,若在1中执行了循环体,然后就执行i++;再判断i<10是否成立,成立就执行循环体,否则跳出. 就这样一直执行到跳出循环体. 不知道我说的你是否能明白!!

灯塔市17311861525: C语言中for循环语句 -
郜庆羟基: for()语句包括三个表达式,第一个和第三个可以省略,省略第一个的意思是在for之前已经对变量初始化,例如i=0; for(;i

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网