第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

幫忙看看在c語言中 if else函數(shù)的問題?

幫忙看看在c語言中 if else函數(shù)的問題?

慕沐林林 2021-07-08 11:07:20
讓輸入由大到小的五個數(shù),為什么如下寫輸入5 4 3 2 1會讓重新輸入呢,但是去掉else flag=0這一語句輸入5 4 3 2 1 就正確了,想了半天不懂錯在哪,希望大神指點(diǎn)一下愚蠢的我?!int main(){ int a[5],i,flag=0; while(flag==0) { printf("enter data:\n"); for(i=0;i<5;i++) scanf("%d",&a[i]); for(i=0;i<5;i++) {if(a[i]>a[i+1]) flag=1; else flag=0;} } return 0;}
查看完整描述

2 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗 獲得超9個贊

#include<stdio.h>
void order(){
int i,j,a[5],b[5],temp,count=0;
printf("enter data:\n");
for(i=0;i<5;i++){
scanf("%d",&a[i]); //給數(shù)組a賦值
b[i]=a[i]; //保存數(shù)組以便排序后比對
}
//使用冒泡排序,獲得排序后的數(shù)組b
for(i=0;i<5;i++){
for(j=0;j<4-i;j++){
if(b[j]<b[j+1]){
temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;
}
}
}
//比對數(shù)組
for(i=0;i<5;i++){
if(a[i]==b[i]){
count++;
}
}
if(count!=5){
order();//遞歸調(diào)用函數(shù)。當(dāng)原數(shù)組和排序后數(shù)組元素順序不一樣時候調(diào)用
}
}
int main(){
order();
return 0;
}
你這個程序問題很多,我?guī)湍阈薷牧艘幌拢矣眠f歸做的
?



查看完整回答
反對 回復(fù) 2021-07-11
?
米琪卡哇伊

TA貢獻(xiàn)1998條經(jīng)驗 獲得超6個贊

#include<stdio.h>

int main()
{
int a[5],i,flag=0;

while(flag==0)
{
printf("enter data:\n"); for(i=0;i<5;i++)
scanf("%d",&a[i]);
//應(yīng)是i<4。如果i<5,當(dāng)i等于4時,i+1會越界訪問,可能出現(xiàn)a[4]<a[5]的情況,從而使flag=0;
for(i=0;i<4;i++)
{
if(a[i]>a[i+1])
flag=1;
else
flag=0;
}
}
return 0;
}

另外說明一下,代碼有邏輯錯誤,當(dāng)輸入的5個數(shù)滿足a[3]>a[4]時,就會退出while,而此時a[0]到a[3]不一定是由大到小的。如輸入:2 3 4 5 1。應(yīng)改成:
#include<stdio.h>

int main()
{
int a[5],i,flag=0;

while(flag==0)
{
flag=1;
printf("enter data:\n"); for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(i=0;i<4;i++)
{
if(a[i]<a[i+1])
flag=0;
break;
}
}
return 0;
}



查看完整回答
反對 回復(fù) 2021-07-11
  • 2 回答
  • 0 關(guān)注
  • 400 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號