實驗報告,共同進步(一)

Hey Girlfriends發表於2020-12-07

實驗報告(一)

一、實驗題目
選擇(分支)結構程式設計
二、實驗目的
1、進一步掌握執行一個C/C++語言程式的方法和步驟。
2、熟練使用if語句、if…else語句、switch 語句進行選擇結構程式的設計。
3、熟練使用選擇語句的巢狀。
4、養成良好的程式書寫習慣。
三、實驗內容與實現
1、三個整數a,b,c,由鍵盤輸入這三個數,求三個數中最大的值。(找程式碼的錯誤)

#include<stdio.h>
main()
{
int a,b,c;
    	printf("input a,b,c:");
    	scanf("%d;%d;%d",&a,&b,&c);
    if(a<b)
    	if(b<c)
    	printf("max=%d\n",c);
  				  	else
  			  		printf("max=%d\n",b);
 			   	else if(a<c)
 			   		 printf("max=%d\n",c);
  			  		 else
   			 	 	 printf("max=%d\n",a);
}

該程式的執行截圖
分析程式及其錯誤:
該程式的原意應該是輸出三個數的最大值,語法並沒有錯,但是由於在scanf("%d;%d;%d",&a,&b,&c);中錯誤地打出了;導致了無論如何輸入都會輸出第一個輸入的數字。原因是在C語言中;代表著程式語句的結束,;之後的語句不予輸入,所以一直只輸入了一個數,那麼該數永遠是最大的。
更正後的程式碼應如下:

#include<stdio.h>
main()
{
int a,b,c;
    	printf("input a,b,c:");
    	scanf("%d%d%d",&a,&b,&c);
    if(a<b)
    	if(b<c)
    	printf("max=%d\n",c);
  				  	else
  			  		printf("max=%d\n",b);
 			   	else if(a<c)
 			   		 printf("max=%d\n",c);
  			  		 else
   			 	 	 printf("max=%d\n",a);
}

2、編寫程式,輸入一個百分制的成績,要求輸出成績等級“A”、“B”,“C”,“D”,“E”。90分以上的為:“A”級,8089分的為“B”,7079分的為“C”,60~69分的為“D”,60分以下的為“E”。
設計程式碼:(兩種,一個是if...else語句一個是switch...case...default語句)

#include<stdio.h>
int main()
{
	double score;
	printf("請輸入分數:\n");
	while(scanf("%lf",&score)!=EOF)
	switch((int)(score/10))
	{
		case 10:printf("A\n");break;
		case 9:printf("A\n");break;
		case 8:printf("B\n");break;
		case 7:printf("C\n");break;
		case 6:printf("D\n");break;
		default:printf("E\n");
	}
}

執行截圖如下:
在這裡插入圖片描述

#include<stdio.h>
int main()
{
float a;
while(scanf("%f",&a)!=EOF)
if(a>=0&&a<=100)
{
if(a>=90) printf("A\n");
else if(a>=80) printf("B\n");
else if(a>=70) printf("C\n");
else if(a>=60) printf("D\n");
else printf("E\n");
}
else printf("您輸入的數不在範圍內\n");
return 0; 
}

執行截圖如下:
該程式的執行截圖
核心程式碼:if...else switch...case...default while(scanf("%lf",&a)!=EOF)

  1. if...else switch...case...default都是選擇分支語句,就是給個條件,然後根據後面的語句進行操作,輸出;
  2. while(scanf("%lf",&a)!=EOF)是一種特殊的東西,我只知道是一個能夠讓你一直輸入,不用反覆結束、開啟程式的語句;

相關文章