C项目实训题
1、投票程序:设有代号为’a’,’b’,’c’的三个足球先生候选人,根据投票者在选票上对他们编号的填写顺序分别记分5,3,2。 请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。注意:若同一张票上写有两个相同的代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则显示三个候选者得分并输出“祝贺X当选冠军!”。
例如:投票人数:5
输入投票内容:
a b c
c a b
c a a
该票无效 !
c b a
b c a
三位候选人得分:a:12
b:13
c:15
祝贺c当选冠军!
提示:读取数据要注意:回车换行也是一个字符,所以读取的时候要避免这个字符!最好用这种方式读取:scanf(“ %c %c %c”,a,b,c) ;
另外:统计票数最好用函数实现
2、编程实现:程序首先输出如下菜单信息:
1、打印三角形图案
2、打印正方形图案(行数×2=列数)
3、打印菱形图案
请选择(1-3):
程序根据用户选择,给出如下提示:
请输入所打印图案的行数:(若用户选择3,则提示用户只能输入正的奇整数)
比如:用户选择1、行数为5,选择2、行数为5,选择2、行数为5,则分别打印如下图案:
A AAAAAAAAAA A
BBB BBBBBBBBBBB BBB
CCCCC CCCCCCCCCCC CCCCC
DDDDDDD DDDDDDDDDD DDD
EEEEEEEEEEE EEEEEEEEEEEE E
提示:打印二维图像一般都要用到双重循环,外层循环控制打印行数,内层循环控制每行打印的列数。
最好三种图像都用一个函数实现!
3、编程实现:根据用户输入的正整数n(n<8),计算1!-2!+3!-4!+…+n!(n为奇数)或
1!-2!+3!-4!+…+(n-1)!-n!(n为偶数)。
提示:用一个函数实现阶乘
*4、编程实现:用户从键盘输入任一不超过8位的正整数,输出该数是几位数并输出该数所有质因数的和。
提示:质因数是指这个数是质数(素数),又是因数,如6=2×3,2、3是6的质因数。
參考答案:???
怎么题目一模一样啊?
前几天给个人写了~~ 也这四道题目,算了,也顺便转给你吧.
下面是将四道题目,写成一个程序/
#include "stdio.h"
#include "math.h"
void timu1()
{
int num,a[3]={0},i,t;
int fenshu[3]={5,3,2};
char result[3],s;
printf("\n******************************谢谢您已进入第一题目******************************\n");
printf("请问共有多少人投票?\n");
scanf("%d",&num);
while(num--)
{
for(i=0;i<3;i++)
{
s=getchar();
while(s!='a' && s!='b' && s!='c')
s=getchar();
result[i]=s;
}
if(result[0]+result[1]+result[2]!='a'+'b'+'c')
printf("该票无效 ! \n");
else
{
for(i=0;i<3;i++)
switch(result[i])
{
case 'a': a[0]+=fenshu[i];break;
case 'b': a[1]+=fenshu[i];break;
case 'c': a[2]+=fenshu[i];break;
}
}
}
printf("三位候选人得分:\n");
for(i=0;i<3;i++)
printf("%c: %d\n",'a'+i,a[i]);
t=0;
for(i=1;i<3;i++)
if(a[t]<a[i]) t=i;
printf("祝贺%c当选冠军!\n",'a'+t);
return ;
}
void timu2()
{
int i,j,n,hang,t;
printf("\n******************************谢谢您已进入第二题目******************************\n");
printf(" 现俺只给你如下三种选择:(若有意见,请输入不是这三数的任何符号)\n");
printf(" 1、打印三角形图案\n 2、打印长方形图案\n 3、打印菱形图案\n");
printf("\n 请做选择...... ");
scanf("%d",&n);
if(n==1 || n==2 || n==3)
{
printf("\n您要输出多少行的啊?");
if(n==3) printf("(对不起,对于该项,你只能输入正奇数!)");
printf("\n ");
scanf("%d",&hang);
if(hang>=27 || (hang%2==0 && n==3))
{
printf("\n您不按提示操作,我只能强制推出\n ");
n=10;
}
else
{
switch(n)
{
case 1:
{
for(i=0;i<hang;i++)
{
printf(" ");
for(j=0;j<=i;j++)
printf("%c",'A'+i);
printf("\n");
}
break;
}
case 2:
{
for(i=0;i<hang;i++)
{
printf(" ");
for(j=0;j<10;j++)
printf("%c",'A'+i);
printf("\n");
}
break;
}
case 3:
{
for(i=0,t=0;i<hang;i++)
{
printf(" ");
for(j=0;j<hang;j++)
{
if(j < hang/2-t || j> hang/2+t ) printf(" ");
else printf("%c",'A'+i);
}
if(i<hang/2) t++;
else t--;
printf("\n");
}
break;
}
}
}
}
return ;
}
void timu3()
{
int result=1,sum=1;
int n,fuhao=-1,i;
printf("\n******************************谢谢您已进入第三题目******************************\n");
printf("本题将计算这个式子:\n 1!-2!+3!-4!+…+n!(n为奇数)或1!-2!+3!-4!+…+(n-1)!-n!(n为偶数)。 \n\n");
printf("怎么样?有意见没?\n 没意见请输入数据,否则出入 -1 ");
printf("数据(n<=8): n = ");
scanf("%d",&n);
if(n!=-1)
{
if(n>8) printf("\n由于您不严格操作,将自动退出这个题目。谢谢使用!\n");
else
{
for(i=2;i<=n;i++)
{
sum*=i;
result+=fuhao*sum;
fuhao*=-1;
}
printf("结果是:\n");
for(i=1;i<=n;i++)
{
printf("%d!",i);
if(i!=n)
{
if(i%2) printf("-");
else printf("+");
}
}
printf(" = %d\n",result);
}
}
return ;
}
void timu4()
{
long shu,p, i,t=0,j;
printf("\n******************************谢谢您已进入第四题目******************************\n");
printf("请输入一个整数(位数不超过8位):\n");
scanf("%ld",&shu);
if(shu>***********) printf("\n由于您不严格操作,将自动退出这个题目。谢谢使用!\n");
else
{
p=shu;
while(p)
{
p/=10;
t++;
}
printf("此数是%d位数\n",t);
t=0;
p=shu/2;
for(i=2;i<=p;i++)
if(shu%i==0)
{
for(j=2;j<=(int)sqrt(i);j++)
if(i%j==0) break;
if(j>(int)sqrt(i))
t+=i;
}
for(j=2;j<=(int)sqrt(shu);j++)
if(shu%j==0) break;
if(j>(int)sqrt(shu)) t+=shu;
printf("此数所有质因数的和为:%ld\n",t);
}
return ;
}
int main()
{
int ID,ture=0;
printf("\n!!!!!!!!!!!!!!!!!!!!!!!!!!此程序专门为您设计。祝你用得愉快!!!!!!!!!!!!!!!!!!!!!!\n");
while(1)
{
printf(" 请输入题号(1/2/3/4):(如想退出,请输入任何不是题号字符!)\n ");
scanf("%d",&ID);
getchar();
switch(ID)
{
case 1: timu1();break;
case 2: timu2();break;
case 3: timu3();break;
case 4: timu4();break;
default : ture=1;break;
}
if(ture!=1) printf("*******************************本题已解决谢谢使用*******************************\n");
printf("\n");
if(ture) break;
getchar();
printf("\n请按任何键继续......\n");
getchar();
}
return 0;
}