当前位置:首页 » 编程语言 » C语言循环结构中的疑难问题
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

C语言循环结构中的疑难问题

发布时间: 2023-05-11 17:55:16

c语言有关循环结构的问题

第一题:17。x=15时满足while条件,执行x++,脊握茄即x=16,x/3为非0故做if的内容,x++即x=17,再break跳出循环。
第二题:x。while的条件是当输入的不是‘?’时输出你输入的字符ASCII的前一个字符,直到你输入‘?’为止。当你输入的是Y时输出的是Y前面的一个X,当你输入‘?’时循环结束。
第3题:s=254.首先count=1满足while条件做n=n*a=2;s=s+n=3;count=2;以此类推直到count=7.(count=7还做最后一)。
第4题:1,-2. y--!=-1是先判断樱察y是不是不等于-1,再y自加;a*=y是a=a*y;
第5题:8.continue是指本次循皮兆环continue下的不用做在做下一组循环。s+=i++是指s=s+i;在i家还好。

㈡ c语言 循环结构不能一直循环的问题!!

不首含是终止了,而是还在等着你输入一个数字呢
你一次循环里慎芹晌要输入两个数字才可以,循环里输入的第二个数字才会被判断,
逻宽锋辑判断也错了,你想要1-4的数,就应该判断不满足这个条件继续循环,而不是满足这个条件循环
正确代码如下。祝学习进步
#include<stdio.h>
main()
{ int m,n;
printf("enter your number:\n");
scanf("%d",&m);
for(;m>4&&m<1;)
{
printf("enter your number:");
scanf("%d",&m);
}
}

㈢ c语言循环结构问题

main(){inti=0,x=0;
for(;;){
if(i==3||i==5)continue;//此句每次循环都要执行
if(i==6)break;
i++;s+=i;
}
printf("%d ",s);
}

开始循环i=0,会在i不等于3时执行i++;最终会达到i=3的取值,此时满足第1个if的条件,跳过后面所有语句继续循环,因此i值将不再变化,所以是死循环

main(){inti=0,s=0;
for(;i<9;i++){
if(i==3||i==5)continue;
if(i==6)break;
i++;s+=i;
}
printf("%d ",s);
}

执行顺序:

i=0;x=0;[i=0,x=0]
i<9成立,开始循环:i==3||i==5不成立,i==6不成立,i++;[i=1],s+=i;[s=0+1=1]
i++;[i=2],i<9成立,继续循环:i==3||i==5不成立,i==6不成立,i++;[i=3],s+=i;[s=1+3=4]
i++;[i=4],i<9成立,继续循环:i==3||i==5不成立,i==6不成立,i++;[i=5],s+=i;[s=4+5=9]
i++;[i=6],i<9成立,继续循环:i==3||i==5不成立,i==6成立,break;跳出并结束循环
printf输出:9换行

㈣ C语言结构体循环出错和string.h问题

问题1:你的输入是接受字符(scanf("%c",&zz)),要知道裤行回车也是一个字符,所以每次你输入一个字符,比如说输入q,那么实际上是先执行了一次zz=q,循环一遍后再执行了一次zz=回车,所以在你看来是执行了10/2=5次。。。解决方法是在scanf后虚纯培面加个getchar();接受多余的回车
问题2: strcmp是比较字符串的。所谓字符串是字符数组s[n]的形式,以'\0'为结束符。字符串的名字其实是数组的头指针,同时strcmp的参数也是字符数组指针,不是字符变量。而你在结构体里的name是字符型的变差唯量,所以不能用strcmp比较。

㈤ C语言“循环结构”中的疑问

x+=h实际上就是x=x+h;

s+=f2(x,y)是s=s+f2(x,y).

x++,只是+1.

㈥ c语言结构体循环又有问题 求大佬解决一下

#include<stdio.h>
#define N 3
#define M 5
typedef struct
student
{
double grade[N]; //储
}STU; //储存5名学生的结构体数组
void add_average(STU stu[],int n) //求各科平均分的函数
{
int i, j, sum;
double avg;
for(i=0; i<N; i++)
{
sum= 0;
for(j=0; j<n; j++)
{
sum= sum + stu[i].grade[j];
}
avg = sum*1.0/n;
printf("\n第%d科的平芦桥均成绩为:%.2f\n",i+1 ,avg);
}
}
int main() //主函数
{
int i,j;
STU st[M];
for(i=0; i<M; i++)
{
printf("请分别陪肆猛雹梁输入第%d个学生的三科成绩\n", i+1);
for(j=0; j<N; j++)
{
scanf("%lf", &st[i].grade[j]);
}
}
add_average(st,M);
return 0;
}

㈦ C语言关于循环结构中数据存储的小问题

static是在while里面定义的伍戚一个静态代码块作用域整形变量sum,他只要离开了while的花括号 就搏世不起作用了,只需在主函数里面定腔银陵义这个静态变量就行了

㈧ C语言循环结构小问题

你输入1234a?
main()
{
char ch;long number=0;

while((ch=getchar())<'0'||ch>'6');//这边碰到1就结束循环

while(ch!='?'卖猛&&ch>='0'&&ch<='灶拿6')//这边1,中辩桥2,3,4都符合ch!='?'&&ch>='0'&&ch<='6'所以没有跳出,只有到a的时候就跳出了
{
number=number*10+ch-'0';
printf("%ld#",number);
ch=getchar();
}
getch();

}

㈨ c语言的循环结构!不懂请详讲!谢了

看了一下几位仁兄的回答,都只是敷衍了事。
在循环中,你应该先了解while语句:
语句格式是:
while(条件) //条件一般是个表达式如:c<10;
{
循环语句;
}
下面举个简单的例子 比如设计一个1+2+3+···+100;的程序:
#include"stdio.h"
void main()
{
int i,sum;
i=1;
sum=0;
while(i<=100)
{
sum+=i;
i++;
}
printf("结果是:%d\n",sum);
}
了解了while后就不难了解for语句了;
for语句的一般结构如下:
for(初值;条件;初值的改变);
以上面的程序为例,for语句就是一种简单的写法:
#include"stdio.h"
void main()
{
int i,sum;
for(i=1,sum=0;i<=100;(sum+=i),i++);
printf("最终结果为:%d\n",sum);
}
这样就使得程序变得高效有简洁。
好了就简单介绍到这里了,你以后还是多看看书,这样才有所提高嘛。

㈩ c语言数据结构循环队列问题

主要错在InitQueue函数里面。当声明一个指针的时候,除了指针本身占用的内存以外,是不会分配具体的内存空间的。也就是说,如果只是CircQueue *q;声明指针q,然后直接使用它的内部成员q->front,q->rear = 0是不合法的。实际上,在Visual Studio里面是编译不通过的。

修改后运行截图

CircQueue*InitQueue(){
CircQueue*q=(CircQueue*)malloc(sizeof(CircQueue));
q->front=0;
q->rear=0;
returnq;
}