帮忙编个C语言程序
- 提问者网友:放下
- 2021-12-22 21:00
某地发生了一场谋杀案,凶手在四个人之中 A说是B, B说是C,C说是D,D说C在撒谎.三个人之中有一个人撒了谎。用C语言编程做出这个问题.
谢谢~
- 五星知识达人网友:纵马山川剑自提
- 2022-01-06 00:30
a0=0,b0=0,c0=0,d0=1;//凶手是A
a1=1,b1=0,c1=0,d1=1;//凶手是B
a2=0,b2=1,c2=0,d2=1;//凶手是C
a3=0,b3=0,c3=1,d3=0;//凶手是D
整理一下(可直接拿到VC++ 6.0上面运行试一下):
#include
main()
{
int a[4]={0,1,0,0};
int b[4]={0,0,1,0};
int c[4]={0,0,0,1};
int d[4]={1,1,1,0};
int s,answer[4];
for(s=0;s<4;s++)
{
answer[s]=(a[s]+b[s]+c[s]+d[s]);
}
for(s=0;s<4;s++)
{
if(answer[s]==1)
{
switch (s)
{
case 0:printf("凶手是A!!");break;
case 1:printf("凶手是B!!");break;
case 2:printf("凶手是C!!");break;
case 3:printf("凶手是D!!");break;
default:printf("现场写的,有可能不对,如果看到这行字说明我的程序失败了");break;
}
}
}
}
- 1楼网友:过活
- 2022-01-06 03:07
- 2楼网友:痴妹与他
- 2022-01-06 02:15
#include <stdio.h>
void bubble_sort(float *x, int n) { // 冒泡排序 int j, k, h; float t; for (h = n - 1; h > 0; h--) { // 循环到没有比较范围 for (j = 0, k = 0; j < h; j++) { // 每次预置k=0,循环扫描后更新k if (*(x + j) > *(x + j + 1)) { // 大的放在后面,小的放到前面 t = *(x + j); *(x + j) = *(x + j + 1); *(x + j + 1) = t; // 完成交换 k = j; // 保存最后下沉的位置。这样k后面的都是排序排好了的。 } } } }
int main() { int i,n,pmax,pmin; float grade[100],sum = 0; float max = 0.0,min = 100.0; printf("请输入学生人数 : "); scanf("%d",&n); for(i = 0;i < n;i++) { printf("第%d个学生成绩 : ",i + 1); scanf("%f",&grade[i]); sum += grade[i]; if(grade[i] > max) { max = grade[i]; pmax = i; } if(grade[i] < min) { min = grade[i]; pmin = i; } } printf("平均分是 : %.2f\n",sum/(float)n); printf("最高分是 : %.2f,索引下标是 : %d\n",max,pmax); printf("最低分是 : %.2f,索引下标是 : %d\n",min,pmin); printf("排序后的成绩表为 : \n"); bubble_sort(grade, n); for(i = 0;i < n;i++) { if(i%10 == 0) printf("\n"); printf("%8.2f",grade[i]); } printf("\n\n"); return 0; }
- 3楼网友:从此江山别
- 2022-01-06 01:02