1. c語言解四大湖泊 甲說:「最大洞庭湖,最小洪澤湖,潘陽湖第三;乙說
#include<stdio.h>
int main()
{int d,h,p,t;
for(d=1;d<5;d++)
for(h=1;h<5;h++)
if(h!=d)
for(p=1;p<5;p++)
if(p!=d&&p!=h)
{t=10-d-h-p;
if(((d==1)+(h==4)+(p==3)==1)&&((h==1)+(d==4)+(p==2)+(t==3)==1))
if(((h==4)+(d==3)==1)&&((p==1)+(t==4)+(h==2)+(d==3)==1))
{printf("洞庭湖:No.%d 洪澤湖:No.%d ",d,h);
printf("鄱陽湖:No.%d 太湖:No.%d ",p,t);
}
}
return 0;
}
2. C語言求四大湖問題
可以從C那人說的入手。他只說了兩個,其中有一個是對的,用if else判斷,然後再對A判斷,在B,在D逐個排除。就這樣。
3. 關於四大湖的C語言的For循環問題!!!!!!
#include<stdio.h>
#include<stdlib.h>
intmain()
{
intd,h,p,t;//去掉末尾逗號
for(d=1;d<=4;d++)
{
for(h=1;h<=4;h++)
{
for(p=1;p<=4;p++)
{
for(t=1;t<=4;t++)
{
if((d!=h&&d!=p&&d!=t&&h!=p&&h!=t&&p!=t)
&&((d==1)+(h==4)+(p==3))==1
&&((h==1)+(d==4)+(p==2)+(t==3)==1)
&&((h==4)+(d==3)==1)
&&((p==1)+(t==4)+(h==2)+(d==3)==1)
&&((d+h+p+t)==10)
)
{
printf("%d%d%d%d ",d,h,p,t);//語法錯誤
}
}
}
}
}
system("pause");
}
上面是更正後的代碼。
括弧是控製作用域的,多層for循環的最內層只有if else 沒有其他語句,for的括弧加不加都一樣。從測試結果來看,輸出結果也相同。
4. C語言邏輯問題,四大湖泊比大小
第一種(C++):
#include<iostream> //預編譯命令
using namespace std;
int main() //主函數
{ //主函數開始
int Dt,Hz,Py,Th,sum[4]={0,0,0,0}; //定義變數
char lake[5][10];
//Dt表示洞庭湖,Hz表示洪澤湖,Py表示鄱陽湖,Th表示太湖
//窮舉四大湖排名的所有可能,用1、2、3、4分別來表示它們的大小關系
//1最大,4最小
for(Dt=1; Dt<=4; Dt++){
for(Hz=1; Hz<=4; Hz++){
if(Dt==Hz)
continue;//湖的面積各不相同
for(Py=1; Py<=4; Py++){
if(Py==Hz || Py==Dt)
continue;//湖的面積各不相同
Th=10-Dt-Hz-Py;//計算太湖的排名
sum[0]= (1==Dt) + (4==Hz) + (3==Py);//A說的話
sum[1]= (1==Hz) + (4==Dt) + (2==Py) + (3==Th);//B說的話
sum[2]= (4==Hz) + (3==Dt);//C說的話
sum[3]= (1==Py) + (4==Th) + (2==Hz) + (3==Dt);//D說的話
if(sum[0]==1 && sum[1]==1 && sum[2]==1 && sum[3]==1){
strcpy (lake[Dt], "洞庭湖");//按排名賦值
strcpy (lake[Hz], "洪澤湖");
strcpy (lake[Py], "鄱陽湖");
strcpy (lake[Th], "太湖");
}
}
}
}
for(int i=1;i<=4;i++){
cout<<lake[i]<<endl;//從大到小輸出
}
return 0;//主函數結束
}
第二種(c語言):
#include<stdio.h>
int main(void)
{
int a,b,c,d; /*四湖的順序數,分別表示洞庭湖,洪澤湖,鄱陽湖,太湖*/
for(a=1;a<5;a++) /*對四湖排名分別賦值*/
for(b=1;b<5;b++)
for(c=1;c<5;c++)
for(d=1;d<5;d++)
if(a+b+c+d==10&&a*b*c*d==24) /*限定abcd的值互不相等,即不出現並列的情況*/
if(a==1&&b!=4&&c!=3||a!=1&&b==4&&c!=3||a!=1&&b!=4&&c==3) /*A的話*/
if(b==1&&a!=4&&c!=2&&d!=3||b!=1&&a==4&&c!=2&&d!=3 ||b!=1&&a!=4&&c==2&&d!=3||b!=1&&a!=4&&c!=2&&d==3) /*B的話*/
if(b==4&&a!=3||b!=4&&a==3) /*C的話*/
if(c==1&&d!=4&&b!=2&&a!=3||c!=1&&d==4&&b!=2&&a!=3 ||c!=1&&d!=4&&b==2&&a!=3||c!=1&&d!=4&&b!=2&&a==3) /*D的話*/
printf("四湖的大小順序:\n洞庭湖:%d\n洪澤湖:%d\n鄱陽湖:%d\n太湖:%d\n",a,b,c,d);
return 0;
}