140 likes | 230 Views
浙 江 广 播 电 视 大 学 计算机应用专业(开放专科). 《 程序设计语言 》 作业 2 分析. 1. 编写一个程序,求一个整数序列的和。程序在 每次执行 scanf 函数时都只读取一个整数值 。假定用 scanf 函数读取的第一个整数值指定了还要键入的整数值的个数。例如,在下面的整数系列中,整数值 5 表示求其后的 5 个整数值的和。 5 100 200 300 400 500. 分析: 计数器控制的循环,由输入的第一个整数确定。 ( 应确保第一个数的合法性). (1) 保证第一个整数值的合法性。. int x,y,sum=0;
E N D
浙 江 广 播 电 视 大 学 计算机应用专业(开放专科) 《程序设计语言》作业2分析
1. 编写一个程序,求一个整数序列的和。程序在每次执行scanf函数时都只读取一个整数值。假定用scanf函数读取的第一个整数值指定了还要键入的整数值的个数。例如,在下面的整数系列中,整数值5表示求其后的5个整数值的和。1. 编写一个程序,求一个整数序列的和。程序在每次执行scanf函数时都只读取一个整数值。假定用scanf函数读取的第一个整数值指定了还要键入的整数值的个数。例如,在下面的整数系列中,整数值5表示求其后的5个整数值的和。 5 100 200 300 400 500 分析: 计数器控制的循环,由输入的第一个整数确定。(应确保第一个数的合法性)
(1)保证第一个整数值的合法性。 int x,y,sum=0; scanf(“%d”,&x); while(x<=0) { printf(“invalid ! input again:\n”); scanf(“%d”,&x);}
(2)输入x个数,求和并输出。 while(x-->0) { printf(“please input an integer:\n”); scanf(“%d”,&y); sum+=y; } printf(“sum is %d”, sum);
2. 编写一个程序,计算并打印出几个整数值的平均值。假定用scanf函数读取的最后一个整数值是标志值9999。例如,下面的整数系列表示要计算9999之前的所有整数的平均值。 100 200 300 400 500 9999 分析: 标记控制的循环,本例中标记为“9999”。
main() {int x,sum=0, n=0; scanf(“%d”,&x); while(x!=9999) { sum+=x; n++; printf(“input an integer: 9999 to end\n”); scanf(“%d”,&x); } printf(“sum is %f\n”, (float)sum/n); }
3.计算机一个有趣的应用是绘制直方图。编写一个程序,读取5个在1到30之间的整数值。对每读取的一个值,程序打印出该值个数的连续的星号。例如,如果程序读取整数值7,则打印出*******.3.计算机一个有趣的应用是绘制直方图。编写一个程序,读取5个在1到30之间的整数值。对每读取的一个值,程序打印出该值个数的连续的星号。例如,如果程序读取整数值7,则打印出*******. 分析: 计数器控制的循环(读取5个、绘制连续的星号)。
main() { int x; void printstar(int); for(x=5;x>0;x--) { scanf(“%d”,&x); printstar(x);} }
void printstar(int n) { while(n>0) { printf(“*”); n--;} printf(“\n”); }
4. 某邮购处销售五种产品,零售价见下表(略),编写一个程序,读取如下一系列数据对: 1)产品型号 2)一天的销售量 用switch语句确定每种产品的零售价,计算并显示最近一周所销售的全部产品的零售价总和。 分析: 读取数据; 统计并输出。
分析: 读取数据 按天读取一系列数(循环),以某一标记值为某天销售信息输入结束标记(如:-1),每组的信息包括: 型号 ,销售量 共读取七天的数(循环)
main() { int x,type,number; float sum=0; float cal_data(int,int); void print_day(int); for(x=1;x<8;x++) {print_day(x); printf(“input type,number(-1,-1 to end)\n”); scanf(“%d,%d”,&type,&number); while(!(type==-1&&number==-1)){ sum+=cal_data(type,number); printf(“input type,number(-1,-1 to end)\n”); scanf(“%d,%d”,&type,&number);} } printf(“total:%f”,sum);}
void print_day(int x) { switch(x) {case 1: printf(“Monday:\n”);break; case 2: printf(“Tuesday:\n”);break; case 3: printf(“Wednesday:\n”);break; case 4: printf(“Thursday:\n”);break; case 5: printf(“Friday:\n”);break; case 6: printf(“Saturday:\n”);break; case 7: printf(“Sunday:\n”);break; default: printf(“wrong!\n”);break;} }
float cal_data(int t ,int n) { float p; switch(t) { case 1: p=2.98;break; case 2: p=4.50;break; case 3: p=9.98;break; case 4: p=4.49;break; case 5: p=6.87;break; default:printf(“error type!\n”);return 0;} if(n<0){ printf(“error numer ! Input again:\1”); return 0;} else return p*n; }