本周仅仅进行一个程序,曾经的一个程序。

自己定义例如以下函数,输入n(n<46)个学生的姓名和成绩,顺序输出这n个学生的姓名和成绩,并输出最高成绩的姓名和成绩。预习struct结构体,思考怎样改进这一程序。

 //为count个学生输入姓名和成绩
void getStudentsInfo(char names[][20], int scores[] , int count);
void getStudentsInfo(char* names[], int scores[] , int count);
//依次打印count个学生的姓名和成绩
void printStudentsInfo(char* names[], int scores[],int count);
//获取最高成绩的学生的index
int getIndexOfMaxScore(int scores[],int count);

知识点:

1 字符串数组用于处理多个人的姓名

2 数组作为函数的參数

the core code:

/* Note:Your choice is C IDE */
#include "stdio.h" void inputStudents(char name[][20],int score[],int num);
void outputStudents(char name[][20],int score[],int num);
main()
{
char name[45][20];
int score[45]; inputStudents(name,score,2);
outputStudents(name,score,2); } void inputStudents(char name[][20],int score[],int num){
int i ;
for(i=0;i<num;i++)
scanf("%s %d",name[i],&score[i]);
}
void outputStudents(char name[][20],int score[],int num){
int i ;
for(i=0;i<num;i++)
printf("%s %d",name[i],score[i]);
}

an example :

/* Note:Your choice is C IDE */
#include "stdio.h"
#define N 45 int inputSS(char names[][20],int score[],int num);
void printSS(char names[][20],int score[],int num);
void getMAX(char names[][20],int score[],int num); main()
{
char names[N][20];
int score[N];
int num=0;
int choose; printf("What do you want to do: INPUT(1),OUTPUT(2),MAX(3),EXIT(0):");
scanf("%d",&choose);
do{
switch(choose){
case 1:
num = inputSS(names,score,num);
break;
case 2:
printSS(names,score,num);
break;
case 3:
getMAX(names,score,num);
}
printf("\nWhat do you want to do: INPUT(1),OUTPUT(2),MAX(3),EXIT(0):");
scanf("%d",&choose);
}while(choose != 0); }
int inputSS(char names[][20],int score[],int num){
int n,i;
printf("\nThis Time, How many students do you want to input :");
scanf("%d",&n); if((n+num)>N || n <1){
printf("not valid sum\n");
return -1;
}
printf("NOW INPUT AS ( NAME SCORE ):\n");
for(i=0;i<n;i++){
printf("%d. ",i);
scanf("%s %d",&names[i+num],&score[i+num]);
}
printf("THIS TIME , INPUT IS OVER\n");
return num+n;
}
void printSS(char names[][20],int score[],int num){
int i ;
if(num==0) {
printf("NO STUDENTS NOW\n");
return;
} printf("\nNOW , THE STUDENTS SCORES AS FOLLOWS \n"); for(i = 0 ;i<num;i++)
printf("%2d. name:%10s score:%3d\n",i,names[i],score[i]);
}
void getMAX(char names[][20],int score[],int num){ int i ,max_index,max_score; if(num==0) {
printf("NO STUDENTS NOW\n");
return;
} max_index=0;
max_score=score[0]; for(i = 1 ;i<num;i++)
if( score[i] > max_score ){
max_score = score[i];
max_index = i;
} printf("The Top Score is %d by %s \n",score[max_index],names[max_index]); }

=====================华丽的切割线====================================================

有非常多知识点须要大家复习。以下是一些比較cute的程序。弄懂啊弄懂

//0
#include "stdio.h"
void main(){
int i=0, a[]={3,4,5,4,3};
do
{
a[i]++;
}while(a[++i]<5); for(i=0;i<5;i++)
printf("%d",a[i]) ;
} //1
#include "stdio.h"
void main(){
int a = 7;
int b = 8;
printf ( "a&b = %d\n",a&b);
printf( "a&&b = %d\n",a&&b);
}
//2
#include "stdio.h"
void main(){
int i ;
for(int i = 0; i<4; i++){
if( i==2)
break;
printf("%d ",i);
}
printf("\n");
for(int i = 0; i<4; i++){
if( i==2)
continue;
printf("%d ",i);
}
printf("\n");
}
//3
#include "stdio.h"
void main(){
int sum=0,item=0;
while(item<7){
item++;
sum+=item;
if(sum==7)
break; }
printf("%d\n",sum);
}
//4
#include "stdio.h"
void main(){
int a[]={1,2,3,4,5,6,7,8};
int i,x ,*p;
x=1;
p=&a[3];
for( i=0; i<3; i++ )
x *= *(p+i);
printf("x=%d\n",x);
}
//5
#include "stdio.h"
void main(){
int i=5,x=1;
for(;i<5;i++) x=x+1;
printf("%d\n",x);
}
//6
#include "stdio.h"
void main(){
int x,y;
for (x=0, y=0 ; (y!=123) &&(x<4); x++)
y++;
printf("x=%d,y=%d\n",x,y);
}
//7
#include "stdio.h"
void main(){
int a[7]={3,4,5,6,7,8,9};
int *p,*q;
int i,x;
p=&a[0];
q=&a[6];
for (i=0;i<3;i++)
if(*(p+i)==*(q-i) )
x=*(p+i)*2;
}
//8
#include "stdio.h"
void main(){
int a[5][5];
printf("&a[3][2]-a=%d\n",&a[3][2]-a);
}
//9
#include "stdio.h"
void main(){
int i=2,n=2;
for(;i<5;i++){
continue;
n=n+i;
}
printf("%d\n",n);
}

C程序设计Week12晚上练习的更多相关文章

  1. Week12《java程序设计》第12次作业总结

    Week12<java程序设计>第12次作业总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 面向系统综合设计-图书馆管理系统或购物车 ...

  2. 阅读摘录《javascript 高级程序设计》01

    前言: 因为工作需要,所以开始主攻前台JS方面的技术.在以前的工作中,使用过这门脚本语言.但是都是比较凌乱的,用到什么学什么,只是为了实现业务,而去使用. 不会考虑到代码优化,封装对象等.今次特意借了 ...

  3. [.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用

    [.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用 本节导读:讨论了表达式树的定义和解析之后,我们知道了表达式树就是并非可执行代码,而是将表达式对象化后的数据结构.是 ...

  4. 20145207 《Java程序设计》第5周学习总结

    前言:先聊两句,上午电路实习,刚开始没多久就让电烙铁烫了,倒霉催的~晚上来这里接着弄代码,透心凉心飞扬~ 教材学习内容总结 一.异常处理 1.语法与继承结构 使用try.catch: Java中所有错 ...

  5. 20145227 《Java程序设计》第5周学习总结

    20145227 <Java程序设计>第5周学习总结 教材学习内容总结 第八章 异常处理 8.1 语法与继承结构 1.使用try .catch java中所有错误都会被打包为对象,可以尝试 ...

  6. 现代程序设计——homework-06

    题目: http://www.cnblogs.com/xinz/p/3382048.html 这是一道要多坑有多坑的题目,题目有很多步.综合起来就是这个意思: 在很久以前,有一个大牛,当然那个时候他还 ...

  7. HDU 5925 Coconuts 【离散化+BFS】 (2016CCPC东北地区大学生程序设计竞赛)

    Coconuts Time Limit: 9000/4500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

  8. 记第五届山东省ACM程序设计比赛——遗憾并非遗憾

    记第五届山东省ACM程序设计比赛 5月10日上午9点半左右,我们的队伍从学校出发,一个多小时后到达本次比赛的地点-哈尔滨工业大学. 报道,领材料,吃午饭,在哈工大的校园里逛了逛,去主楼的自习室歇息了一 ...

  9. 20155304 2016-2017-2 《Java程序设计》第六周学习总结

    20155304 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 第十章 串流设计的概念 无论来源和目的地实体形式是什么,只要取得InputStream和Ou ...

随机推荐

  1. 学习PHP注意事项

    1 多阅读手册和源代码 没什么比阅读手册更值得强调的事了–仅仅通过阅读手册你就可以学习到很多东西,特别是很多有关于字符串和数组的函数.就在这些函数里面包括许多有用的功能,如果你仔细阅读手册,你会经常发 ...

  2. HDU 6240 Server(2017 CCPC哈尔滨站 K题,01分数规划 + 树状数组优化DP)

    题目链接  2017 CCPC Harbin Problem K 题意  给定若干物品,每个物品可以覆盖一个区间.现在要覆盖区间$[1, t]$. 求选出来的物品的$\frac{∑a_{i}}{∑b_ ...

  3. Python与数据库[1] -> 数据库接口/DB-API[1] -> MySQL 适配器

    MySQL适配器 / MySQL Adapter MySQL是一种关系型数据库,下面主要介绍利用如何利用Python的MySQL适配器来对MySQL进行操作,其余内容可参考文末相关阅读. 1 MySQ ...

  4. FZU-2270 Two Triangles(两个三角形全等)

    原题地址: 题意: 给出n个点,有两个人,每个人可以选3个点,问有多少种情况是可以找出两个三角形,是可以通过旋转使其全等.   思路: 所以首先要是三角形即三点不能共线,其次要全等,即三条边对应相等, ...

  5. poj2976(01分数规划)

    poj2976 题意 给出 a b 数组,一共 n 对数,其中最多可以去掉 k 对,问怎样使剩下比率(原始比率是 $ \frac{\sum_{i=1}^{n} a}{\sum_{i=1}^{n} b} ...

  6. 探究堆喷射(heap spray)

    博客园的自动保存系统真心不咋地,写的差不多的文章蓝屏之后就没有了,醉了! 浏览器是互联网世界最主要的软件之一,从IE6到IE11安全攻防在不断升级,防御措施的实施促使堆喷射技巧不断变化.写这篇博文想好 ...

  7. js timestamp 转换 date 和 将秒数整理为时分秒格式

    // 获得的后台json 时间格式转化 例如:1520305366000  转化为XXXX-XX-XX类似这种 function timeStamp2String(time){ var datetim ...

  8. jtds链接SqlServer数据库(整合)

    先前使用的时候没做汇总,现在结合遇到的问题总结下. 开始使用jdbc驱动配置调用SqlServer不合适,根据网上的资料修改成了jtds配置方式. 当时使用的maven配置,配置如下: <spa ...

  9. 【视频】 Linux高级程序设计01.2开发平台及Linux环境限制

    [课程笔记] Linux环境限制 遵循规范,使用现有资源,明确系统限制,增量开发. (1)规范问题 编码的规范,让程序更易读.Linux编码规范. “见着如意”:变量,函数命名等能够让人看到名称就知道 ...

  10. XCode工程内多Targets教程

    作者  透明de面具 原帖地址  http://www.cocoachina.com/bbs/read.php?tid-10972-fpage-0-toread--page-1.html    相信很 ...