谁能帮我编几道c语言的简单题目

2024-12-21 21:15:55
推荐回答(4个)
回答1:

哎,写了2小时,全部写完了,谁叫你是MM呢.
WIN-TC下通过.全部用英文,输出的地方够可以改成E文.

#include
#include
#include
char *day[]={"","MONDAY","TUESDAY","WEDNESDAY","THURSDAYT",
"FRIDAY","SATUDAY","SUNDAY"}; /*建立星期表*/
void onduty()
{
int a[8]={0};
int i,j,t;
clrscr();
a[4]=6; /*星期四是F值班*/
for(i=1;i<=3;i++)
{
a[i]=2; /*假设B值班的日期*/
if(!a[i+3]) a[i+3]=7; /*若三天后无人值班则安排G值班*/
else{ a[i]=0;continue;} /*否则B值班的日期不断对*/
for(t=1;t<=3;t++) /*假设E值班的时间*/
{
if(!a[t]) a[t]=5; /*若当天无人值班则安排E值班*/
else continue;
if(!a[t+2]) a[t+2]=4; /*若E值班两天后无人值班则应为D*/
else{ a[t]=0;continue;} /*否则E值班的日期不对*/
for(j=5;j<7;j++)
{
if(!a[j]) a[j]=3; /*若当天无人值班,则安排C值班*/
else continue;
if(!a[j+1]) a[j+1]=1; /*C之后一天无人值班则应当是A值班*/
else{ a[j]=0;continue;} /*否则A值班日期不对*/
for(i=1;i<=7;i++) /*安排完毕,输出结果*/
printf("%c is on duty %s.\n",'A'+a[i]-1,day[i]);
}
}
}
getch();
}
void drawcircle()
{ int r,x,y;
double m;
clrscr();
printf("Please enter your circlr r\n") ;
scanf("%d",&r);
clrscr();
for(y=r;y>=-r;y--)
{
m=2.5*sqrt(r*r-y*y); /*计算行y对应的列坐标m,2.5是屏幕纵横比调节系数因为屏幕的
行距大于列距,不进行调节显示出来的将是椭圆*/
for(x=1;x<30-m;x++) printf(" "); /*图形左侧空白控制*/
printf("*"); /*圆的左侧*/
for(;x<30+m;x++) printf(" "); /*图形的空心部分控制*/
printf("*\n"); /*圆的右侧*/
}
getch(); /*这种对应是全屏的,用ALT+ENTER键看图,不然还是椭圆*/
}

int hextodec(char *a,int num) /*将十六进制数变为十进制*/
{ int i=0,j,cout=0; /*用法:输入字符和个数得到结果*/
for (j=0;j {
if (isdigit(a[j]))
i=i*16+(a[j]-'0');
else
{
toupper(a[j]);
i=i*16+(a[j]-'A'+10);
}
}
return i;
}

void feemsg()
{
char a[18];
int i,type,id,year,month,day,hour,minute,second,fee; /*和英文意思一样*/
clrscr();
printf("Please enter your fee message code\n");
scanf("%s",a); /*输入*/
type=hextodec(&a[0],2);
id=hextodec(&a[2],4);
year=hextodec(&a[6],2);
month=hextodec(&a[8],2);
day=hextodec(&a[10],2);
hour=hextodec(&a[12],2);
minute=hextodec(&a[14],2);
second=hextodec(&a[16],2);
if (type==1) fee=100;
if (type==2) fee=200;
if (type==3) fee=200;
if (type==4) fee=500;
if (type==5) fee=100;
clrscr();
printf("type :%d\n",type);
printf("id :%d\n",id);
if (year>=10)
printf("date :20%d-%d-%d %d:%d:%d\n",year,month,day,hour,minute,second);
else
printf("date :200%d-%d-%d %d:%d:%d\n",year,month,day,hour,minute,second);
printf("fee :%d",fee);
}

void displaymenu(void)
{
clrscr();
printf(" *******************************************\n");
printf(" main menu\n"); /*便于调试使用英文*/
printf(" 1:Logical Analyse\n");/*可以改为中文*/
printf(" 2:Charact Analyse\n");
printf(" 3:Draw Cicle\n");
printf(" 0.exit\n");
printf(" ********************************************\n");
printf("input operation code:");
}/*显示主菜单*/

void main()
{ char m;
displaymenu();
m=getch();
printf("%c",m);
while(m!='0'){
switch(m)
{
case '1':

onduty();
displaymenu();
break;
case '2':
feemsg();
displaymenu();break;

case '3':
drawcircle();
displaymenu();
break;
default:break;
}
m=getch();
}
}

回答2:

逻辑分析题我来帮你做!程序如下:这个程序成功运行了,结果是
a=7 b=2 c=6 d=3 e=1 f=4 g=5;vc++下运行。

#include "stdafx.h"
#include
#include
using namespace std;

int main(int argc, char* argv[])
{
int a,b,c,d,e,f,g;

for(a=1;a<=7;++a)
for(b=1;b<=7;++b)
{
if(b==a)continue;

for(c=1;c<=7;++c)
{
if((c==a)||(c==b))continue;
for(d=1;d<=7;++d)
{
if((d==a)||(d==b)||(d==c))continue;
for(e=1;e<=7;++e)
{
if((e==a)||(e==b)||(e==c)||(e==d))continue;
for(f=1;f<=7;++f)
{
if((f==a)||(f==b)||(f==c)||(f==d)||(f==e))continue;
for(g=1;g<=7;++g)
{
if((g==a)||(g==b)||(g==c)||(g==d)||(g==e)||(g==f))continue;
//cout< if( (a-c==1)&&(d-e==2)&&(g-b==3)&&((f==4)&&(f>b)&&(f cout<<"a="<

回答3:

逻辑分析题
0-6分别代表周一到周日
*代表空格
void main()
{
****int A,B,C,D,E,F,G;
****F = 3;
****bool FindFlag = false;
****for (B=0; B****{
********for (C=F+1; C<=6 && FindFlag==false; C++)
********{
************E = 6-B-C;
************if ( E >6 || E==B || E==C || E==3)
************{
****************continue;
************}
************G = B+3;
************A = C+1;
************D = E+2;
************if ( D!=B && D!=C && D!=F && D!=G && D!=A && D<=6)
************{
****************FindFlag =true;
****************printf("A:%d B:%d C:%d D:%d E:%d F:%d G:%d \n",A,B,C,D,E,F,G);
****************break;
************}
********}
****}
}

回答4:

太花时间了,写第一道吧。。。

#include
int main()
{
int a[7],i,j;
a[5]=4;
bool Temp=true;//a[0]到a[6]是否不同
for(a[0]=1;a[0]<=7;a[0]+=1)
for(a[1]=1;a[1]<=7;a[1]+=1)
for(a[2]=1;a[2]<=7;a[2]+=1)
for(a[3]=1;a[3]<=7;a[3]+=1)
for(a[4]=1;a[4]<=7;a[4]+=1)
for(a[6]=1;a[6]<=7;a[6]+=1)
{
if((a[0]-a[2]==1)&&(a[3]-a[4]==2)&&(a[6]-a[1]==3)&&(a[1] {
for(i=0;i<7;i++)
{
for(j=i+1;j<7;j++)
{
if(a[i]==a[j])
Temp=false;
}
}
if(Temp)
{
for(i=0;i<7;i++)
printf("%d",a[i]);//打印结果
printf("\n");
}
Temp=true;
}
}
return 0;
}

----------------------------------
VC6.0结果:

7263145
Press any key to continue

即A是礼拜天,B是礼拜2……