第六次作業


一、實驗內容   

1.有一個四位正整數,組成這個四位數的四個數字各不相同,如果把它們的首尾互換,第二位與第三位互換,組成一個新的四位數。原四位數為新四位數的4倍,請找出一個這樣的四位數。

#include <stdio.h>
int main()
{
	int a,b,c,d,num,sum;
	printf("輸入一個四位整數\n");
	for(num=1000;num<=9999;num++)
	{
		a=num/1000;
		b=num/100%10;
		c=num/10%10;
		d=num%10;
		sum=1000*d+100*c+10*b+a;
		if(num==4*sum&&a!=b&&a!=c&&a!=d&&b!=c&&b!=d&&c!=d)
		{
			printf(" %4d",num);

}
} return 0;
}

  

2.輸入任意一個多位的數字,求各位數字之和。如果在【1,12】之內,則輸出與和數字對應的月份的英文名稱,否則輸出***。

  樣例: 輸入123,    輸出 6     June

            輸入12345,輸出 15   ***

  

#include <stdio.h>
int main()
{
	int a,b,sum=0;
	printf("輸入一個多位數\n");
	scanf("%d",&a);
	while(a>0)
	{
	  b=a%10;
      a=a/10;
      sum=sum+b;
	}
	if(sum==1)
	{
		printf("january\n");
	}
	else if(sum==2)
	{
		printf("february\n");
	}
	else if(sum==3)
	{
		printf("march\n");
	}
	else if(sum==4)
	{
		printf("april\n");
	}
	else if(sum==5)
	{
		printf("may\n");
	}
	else if(sum==6)
	{
		printf("june\n");
	}
	else if(sum==7)
	{
		printf("july\n");
	}
	else if(sum==8)
	{
		printf("august\n");
	}
	else if(sum==9)
	{
		printf("september\n");
	}
	else if(sum==10)
	{
		printf("octomber\n");
	}
	else if(sum==11)
	{
		printf("november\n");
	}
	else if(sum==12)
	{
		printf("december\n");
	}
	else
	{
		printf("***");
	}
	return 0;
}

  

3.給定不超過6的正整數A,考慮從A開始的連續4個數字。請輸出所有由它們組成的無重復數字的3位數。

   輸入格式:輸入在一行中給出A。

   輸出格式:輸出滿足條件的的3位數,要求從小到大,每行6個整數。整數間以空格分隔,但行末不能有多余空格。

   輸入樣例:2

   輸出樣例:234  235  243  245  253  254

                  324  325  342  345  352  354

                  423  425  432  435  452  453

                  523  524  532  534  542  543

  

#include <stdio.h>
#include <stdlib.h>
int main()
{
	int A,i,x,y,z,n=0,num;
	printf("輸入一個不超過6的整數\n");
	scanf("%d",&A);
	i=A+4;
	for(x=A;x<i;x++)
		for(y=A;y<i;y++)
			for(z=A;z<i;z++)
			{
				if(x!=y&&x!=z&&y!=z)
				{
					num=100*x+10*y+z;
					printf(" %d",num);
					n++;
					if(n%6==0)
					{
						printf("\n");
					}
				}
			}
			return 0;
}

  

4.萬年歷

  

#include<stdio.h> 
int main() 
{ 
    int year,month,day,i,a,days=0,date; 
    scanf("%d%d",&year,&month); 
    a=1900,i=0; 
    while(a<year) 
{ 
    if((a%4==0&&a%100!=0)||(a%400==0)) 
    i+=1; 
    a++; 
} 
if((year%4==0&&year%100!=0)||(year%400==0)) 
{ 
    switch(month) 
    { 
     case 1:day=31;break;  
     case 2:days=31;day=29;break; 
     case 3:days=31+29;day=31;break; 
     case 4:days=31+29+31;day=30;break; 
     case 5:days=31+29+31+30;day=31;break; 
     case 6:days=31+29+31+30+31;day=30;break; 
     case 7:days=31+29+31+30+31+30;day=31;break; 
     case 8:days=31+29+31+30+31+30+31;day=31;break; 
     case 9:days=31+29+31+30+31+30+31+31;day=30;break; 
     case 10:days=31+29+31+30+31+30+31+31+30;day=31;break; 
     case 11:days=31+29+31+30+31+30+31+31+30+31;day=30;break; 
     case 12:days=31+29+31+30+31+30+31+31+30+31+30;day=31;break; 
    } 
} 
  
else 
{ 
    switch(month) 
{ 
   
   case 1:day=31;break;
     case 2:days=31;day=28;break; 
     case 3:days=31+28;day=31;break; 
     case 4:days=31+28+31;day=30;break; 
     case 5:days=31+28+31+30;day=31;break; 
     case 6:days=31+28+31+30+31;day=30;break; 
     case 7:days=31+28+31+30+31+30;day=31;break; 
     case 8:days=31+28+31+30+31+30+31;day=31;break; 
     case 9:days=31+28+31+30+31+30+31+31;day=30;break; 
     case 10:days=31+28+31+30+31+30+31+31+30;day=31;break; 
     case 11:days=31+28+31+30+31+30+31+31+30+31;day=30;break; 
     case 12:days=31+28+31+30+31+30+31+31+30+31+30;day=31;break; 
    } 
} 
days=(year-1900-i)*365+i*366+days; 
date=(days+1)%7; 
printf("%d\n",date); 
printf("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\n"); 
    for(i=0;i<date;i++) 
    { 
        printf("\t"); 
    } 
    for(i=1;i<=day;i++) 
    { 
        printf("%d\t",i); 
        if((i+date)%7==0) 
        { 
            printf("\n"); 
        } 
    } 
return 0; 
}

  

  

  

二.實驗總結:
1.順序結構
(1)標識符由字母,數字,下划線組成
(2)“=”與“==”的區別
(3)變量先聲明后使用
2.選擇結構
(1)if else語句
(2)數學函數#include <math.h>
        包括:絕對值函數和平方根函數分別用double fabs和double sqrt
(3)在if和else后面總要用到{}
3.循環結構
(1)for語句  while語句  do~while語句
(2)一行語句中一個變量只出現增,減運算符
(3)無限循環中,通過在循環體中加break語句對循環控制

  

三.作業總結
對於第二題應該想好是對誰取余,誰除10,還有先后問題
萬年歷的題日期能計算出來但是表格輸不出來


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM