㈠ 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;
}