❶ c語言趣味題目 求代碼和答案 謝謝 !
將四人用1, 2, 3, 4 編號,用枚舉法解決
變數x 表示做好事者的編號序號,則x 從1到4,四個人所說的話分別寫成:
a 說:x != 1
b 說:x == 3
c 說:x == 4
d 說:x != 4
當這4 個邏輯式值相加等於3 時,即為解答
#include <stdio.h>
int main( )
{
int x;
for (x = 1; x <= 4; ++ x)
if ((x != 1) + (x == 3) + (x == 4) + (x != 4) == 3)
printf("Is %c\n.", (char)(64 + x));
}
❷ c語言 ACM或者趣味題目
你要這些題目的目的是什麼,不就是為了鍛煉自己的編程水平么,那還要別人解釋演算法干什麼,這對你能起到鍛煉作用么.
這算胡言亂語?做ACM之類的題目,不就是要你自己獨立思考么,在失敗N次後你可以向別人求助演算法,思路,但不能一開始就要知道演算法,那樣做ACM還有意義么.
❸ 關於C語言的題目
int main()
{
int a,sum=0;
scnaf("%d",&a);
while(a!=0)
{sum=sum+a%10;
a=a/10;
}
printf("%d",sum);
return 0;
}
第二題:輸出1~999中能被3整除,而且至少有一位數字是5 的所有數字。
int main()
{
int a,m,i,n,flag;
for(i=1;i<1000;i++)
{flag=0;
if(i%3==0)
{m=i;
while(m!=0)
{ n=m%10;
if(n==5) { flag=1;break;}
m=m/10;
}
if(flag) printf("%4d",i);
}
return 0;
}
❹ 一個C語言趣味程序的問題
printf(count%8?"%2d:%d,%d,%d":"%2d:%d,%d,%d ",++count,a,b,c);
這句話是控制每行列印8組數據,其實相當於
{
if(count%8==0){
printf("%2d:%d,%d,%d ",++count,a,b,c);
}else{
printf("%2d:%d,%d,%d",++count,a,b,c);
}
}
x?a:b====>如果x不等於0,a有效,如果x==0,b有效。
所以,當count%8==0時,這句話相當於printf("%2d:%d,%d,%d ",++count,a,b,c);
當count%8!=0時,這句話相當於printf("%2d:%d,%d,%d",++count,a,b,c);
❺ 關於c語言的題目
scanf("%c",&c);//這一句是接收一個字元,
scanf("%d",&i);//這一句是接收數字的,
scanf("%s",s);//這一句是接收字元串,
不過最重要的就是scanf這個函數在接收到空格時會停止,跳向下一句
根據這個情況你在想想
❻ 一道C語言趣味小題
#include<stdio.h>
typedef struct GOODTHINGS
{
int trueIndex; //做好事的號碼 -1 代表沒有指示誰做了好事
int falseIndex; //沒做好事的號碼 -1代表沒有指示誰沒做好事
GOODTHINGS()
{
trueIndex = -1;
falseIndex = -1;
}
} GoodThings, *pGoodThings;
bool isOK(const pGoodThings pA, int nSizeofA);
void main()
{
GoodThings a[4];
GoodThings temp;
a[0].falseIndex = 0; //A指示自己沒做好事
a[1].trueIndex = 2; //B說是C
a[2].trueIndex = 3; //C說是D
a[3].falseIndex = 3; //D說C說謊,即D指示自己沒做好事
int trueCount = 0;
for(int i = 0; i < 4; i++)
{
temp.falseIndex = a[i].falseIndex;
temp.trueIndex = a[i].trueIndex;
if(i == 0 || i == 3)
{
a[i].trueIndex = i; //a[i] tell lies
a[i].falseIndex = -1;
}
else
{
a[i].falseIndex = a[i].trueIndex;
a[i].trueIndex = -1; //a[i] tell lies
}
if(isOK(a, 4) == true)
return;
a[i].falseIndex = temp.falseIndex;
a[i].trueIndex = temp.trueIndex;
}
}
bool isOK(const pGoodThings pA, int nSizeofA)
{
int trueIndex = -1; //沒有指示
for(int i = 0; i < nSizeofA; i++)
{
if(pA[i].trueIndex != -1 && trueIndex == -1) //首次指示pA中誰做了好事
trueIndex = pA[i].trueIndex;
if(pA[i].trueIndex != -1 && pA[i].trueIndex != trueIndex) //與公共指示誰做好事不同,則互斥退出
return false;
}
if(trueIndex == -1)
{
printf("Can't specify the index...\r\n");
return true;
}
for(i = 0; i < nSizeofA; i++)
{
if(pA[i].falseIndex == trueIndex && pA[i].falseIndex != -1) //指示trueIndex沒做好事,又指示trueIndex做了好事,互斥退出
return false;
}
printf("result index: %d\r\n", trueIndex);
return true;
}
❼ C語言題目簡單的題目
定義數組,長度必須是個確定的值,char p[n],這樣肯定不對
字元比較,,不用strcmp,這個是比較字元串的,只用用if( p[i]== 'A' )這樣就可以了
str[i]是個什麼?看不出來
❽ 一道有趣的c語言題目
空間能多大呢?可以記憶化搜索呀QAQ定義一個數組存G 如果計算過直接返回 否則計算QAQ
但是看著n貌似會爆內存
可能矩陣加速能做吧QAQ
一會再看~先佔個坑~