当前位置:首页 » 编程语言 » c语言的趣味题目
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言的趣味题目

发布时间: 2022-03-14 22:39:55

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
一会再看~先占个坑~