求大佬看一下,这个C语言为啥只循环一次就停了??很困惑 把while换成for(i=1,i<= num;i++)也是循环一次,

作者&投稿:红歪 (若有异议请与网页底部的电邮联系)
求C语言大佬看一下,我有点疑问~

五个学生成绩连续分开输入,再按回车键,for循环里的scanf()函数会依次读取缓冲区里的数据。
程序纠错:
#include
#include
fun(int []); //纠错一:声明函数原型
void main()
{
int a[5],i;
printf("请输入学生成绩:");
for(i=0;i<=4;i++)
scanf("%d",&a[i]);
fun(a);
}

fun(int d[]) // 纠错二:函数无返回值,不应该有 int
{
int sum=0,c=0,ave,i;
for(i=0;i<=4;i++)
sum=sum+d[i];
ave=sum/5; //纠错三:五个值应除五
for(i=0;i<=4;i++)
{
if(d[i]>ave)
c=c+1;
}
printf("%d",c);
}


#include #include #include #define MAXlen 100void select_sort(int *x, int n,int flag) { //选择排序,flag == 1时,升序, 0时,降序int i, j, k;int t;for (i = 0; i *(x + k)) { // 降序k = j; // 如果后面的数比前面的大,则记下它的下标}}} if (k != i) { // 如果k在循环中改变了,就需要交换数据t = *(x + i);*(x + i) = *(x + k);*(x + k) = t;}}}void show(int a[],int n) {int i,cnt = 0;if(n > 10) {for(i = 0;i x) high = mid - 1;else low = mid + 1;}return 0;}int main() {int i,n,x,pos;int iArr[MAXlen];char an[10];printf("1、手工输入数据,2、系统随机生成数据。");scanf("%s",an);if(an[0] == '2') {srand((unsigned int)time(NULL));printf("
排序前:
");for(i = 0 ; i < MAXlen ; i++) {iArr[i] = (unsigned int)rand() % 1000;if(i % 10 == 0) printf("%
");printf("%5d",iArr[i]);}printf("
");printf("你要查找的数:");scanf("%d",&x);pos = research(iArr,MAXlen,x);if(pos) printf("找到了。%d的索引下标是:%d
",x,pos - 1);else printf("对不起,没找到。
");select_sort(iArr,MAXlen,1);printf("
排序后:
");show(iArr,MAXlen);}else if(an[0] == '1') {printf("数据个数:");scanf("%d",&n);for(i = 0; i < n; ++i) scanf("%d",&iArr[i]);show(iArr,n);printf("你要查找的数:");scanf("%d",&x);pos = research(iArr,n,x);if(pos) printf("找到了。%d的索引下标是:%d
",x,pos - 1);else printf("对不起,没找到。
");select_sort(iArr,MAXlen,0);printf("
排序后:
");show(iArr,n);}printf("

");return 0;}

肯定是0啊。初始num=0,i=0。只有第一次判断i<=num成立。之后i=1,判断条件不成立。你应该是忘记给num赋值了


求大佬看一下这个C语言题目。要求:根据出生年份判断多名学生属相。求...
int i;int yea8;while(1){ printf("输入年份:");scanf("%d",&year);printf("%d\\r\\n",year%12);switch(year%12+1){ case 0: printf("未羊\\r\\n"); break;case 1: printf("申猴\\r\\n"); break;case 2: printf("酉鸡\\r\\n"); break;case 3: printf("戌狗\\r\\n"); break;c...

那个大佬帮我看一下这个C语言程序有错吗,为什么我的电脑运行不了?_百 ...
m++是执行语句后再自增,++n是先自增再执行语句。 p=m+m+m=5+5+5=15 连续执行3次m++,m=8 连续执行3次++n,n=8 q=n+n+n=8+8+8=24 输出p,q,m,n的值,依次输出15 ,24 ,8 ,8

求大佬,看一下这C语言选择题题
nare(): [xx=6], xx*=xx+1;[xx=6*7=42], printf输出:42 i++;[i=6], i<x不成立[x=6], 结束循环。选C。

哪位大佬能帮我看一下这个C语言哪错了
在fwrite(&s,sizeof(struct student),1,fp);后加一句fclose(fp);——这提倡的完善写法。为检测读出到底是否正确,应该另设一变量较好。

C语言题目 求大佬帮看一下
首先说一下题目的答案是:11 程序运行了一下, 截图如下:下面解析一下原因:1、根据判断条件来看,当 k = 10时, while 条件不成立。2、但是需要注意的一点是,在while条件中,使用的是 K++, 而++符号在后面。3、++运算符使用有两种, 先+1在用, 和先使用在+1。而此处使用的明明是后者。4...

求c语言大佬帮忙看一下这一题,一脸懵逼_(:з」∠)_
个人也是新手,根据我的理解是,这个题目出的很奇葩呀。因为刚开始大家写c都是一个黑窗口怎么可能同时实现这些功能呢。肯定是有一个顺序方式的,两个函数模块。一个是手动输入数据的,另一个是自动生成数据的,我们统称之为数据模块。题目要求需要用户自定义选择,那我们就定义一个,选择模块。显示方式,...

求大佬帮忙看一下C语言代码哪里有问题?
把gets();改为:gets(str);就可以了:

C语言,麻烦大佬看一下哪里错了,为什么给的0分,谢谢
题目是让你用递推来写,那个f1,f2,fn不是说表示数组,而是告诉你怎样将复杂问题变为简单式子。递推就把复杂问题分解成重复的单运算,再通过循环累积计算。这里fn就是前两个数的和,比如f3就是f1,f2的和,f4就是f2,f3的和,所以要得到f4(也就是n=4),只要先计算f1+f2,再拿这个和加上f2(上...

求大佬帮我看一下C语言代码哪里出了问题?
运行结果如下 题目只是让你找出最大的字符串,又没让你排序,你排序干个啥?!!!严重的审题不清!修改后的代码如下:include<stdio.h> include<string.h> void main(){ char str[4][30];char string[30];int i,j;for(i=0;i<4;i++)gets(str[i]);strcpy(string,str[0]);for(j=0...

求c语言大佬看一下这一题,才学指针,一脸懵逼(●—●)
这个程序和math.h头文件没半毛钱关系,你加了干啥。加一个string.h,用strcmp函数,几分钟就搞定了。

衢州市19562655934: 求大佬看一下,这个C语言为啥只循环一次就停了??很困惑 把while换成for(i=1,i<= num;i++)也是循环一次, -
象泰艾欣: 肯定是0啊.初始num=0,i=0.只有第一次判断i

衢州市19562655934: C语言为什么这里只输出循环执行一次的结果 -
象泰艾欣: 如果这段代码写在函数,那么语句return sum; 将直接结束函数,函数返回值为sum

衢州市19562655934: 这个程序为什么循环只循环了一次?求c语言高手 -
象泰艾欣: 这个while就是 如果x[0]不等于字符4和x[1]不等于字符1就循环 这个是与运算 与运算要两边都为真才为真,有一边为假那么结果就是假

衢州市19562655934: 一个简单c语言的do ....while()循环,但为什么只能循环一次,求解释,谢谢!! -
象泰艾欣: 你这个do,while没有一点作用,只要sign不等于'Y'就不会做do里面的工作,首先要明确你的sign是干什么的,

衢州市19562655934: 为什么下面C语言代码是死循环呀.看了半天没发现问题 -
象泰艾欣: 表达式1,表达式2 逗号表达式的求解过程是:先求解表达式1,再求解表达式2.整个逗号表达式的值是表达式2的值.例如,表达式“3+5,6+8”的值为14.也就是说for循环能否自动结束取决于这个表达式printf(“Second=%d”,i);而printf函数的返回值是打印出的字符个数,而你的for循环内的判断表达式printf不可能返回0,而是返回8,“Second=%d”一共八个字符,所以程序死循环

衢州市19562655934: c语言为什么这个程序会陷入死循环? -
象泰艾欣: 不管是if还是while,只要后面带的分号,那么就不会执行{}里面的内容. 去掉while(count<10);后面的分号,那么就能正常循环了.

衢州市19562655934: C语言中看看这个脚本为什么会循环
象泰艾欣: //这不就是我写的么 #include <stdio.h> //308753249 不懂问啊 int main() { int n,i,j,x,i1,j1; int a[20][20]; while(scanf("%d",&n)!=EOF)//输入n (n为奇数) { for(i=1;i<=n;i++)//将数组赋值为0 for(j=1;j<=n;j++) a[i][j]=0; i=1;//i,j 记录第一个数据即1所放...

衢州市19562655934: c语言中 为什么有时候输入.就陷入死循环了??? -
象泰艾欣: 那要看你输入的是什么,还有具体问题具体分析. 比如说有的时候让你输入除数,你输入了0.0是不能做除数的,而你的程序中又没有列出当用户输入0时,程序应该干什么,是应该报错呢,还是当做1处理呢.计算机不知道该怎么做,他只知...

衢州市19562655934: 关于C语言的为什么死循环问题(请逐一解释)
象泰艾欣: 第一个死循环:while(s)后面紧跟分号,表示其循环体为空,执行完循环后再执行后面一句自减,由于s初始化为36,即非零,循环体未对s进行改变,所以循环一直为真.即该循环为死循环. 第二个死循环:for的三个表达式均为空,即表示无条件循环(死循环). for(表达式1;表达式2;表达式3),其中表达式1为给变量赋初值,表达式2判断是否继续循环,表达式3为变量控制.其中只要表达式2一直为真,那么这个循环语句就会进入死循环.

衢州市19562655934: c语言循环语句.b为什么只输出一次? -
象泰艾欣: 有点不太清楚,这个程序是用来做什么的?从程序上看,应该是这个b会输出多次的,问题是你这里输入的n是什么?这是有讲究的.如果输入的数字n是等于3,那么他计算的是a就是等于10的3次方,然后二重循环就是穷举所有的三位数.但是这里的c[]数组是用来做什么的?计算了以后下一回又重新改写,完全没有作用.所以,请重新编译一次,以后再运行,把输入的n是几,然后输出的b等于几说一下,再来分析他出错的原因,就比较方便了.

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