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

自己定义例如以下函数,输入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. [BZOJ1821][JSOI2010]Group 部落划分 Group 最小生成树 贪心

    1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2943  Solved: 1390[S ...

  2. (10)java基础知识-字符串

    String s和 new String 的区别 String s1="hello"; String s2= new String("hello"); Stri ...

  3. HDU 1426 Sudoku Killer (回溯 + 剪枝)

    本文链接:http://i.cnblogs.com/EditPosts.aspx?postid=5398818 题意: 给你一个 9*9 的矩阵,同一行相邻的两个元素用一个空格分开.其中1-9代表该位 ...

  4. [Math Review] Statistics Basic: Sampling Distribution

    Inferential Statistics Generalizing from a sample to a population that involves determining how far ...

  5. #422 Div2 D

    #422 Div2 D 题意 假设有 n 个人比赛,每次比赛进行分组,每组人数必须相同,如果一组有 x 人,则那一组要比赛 $ \frac{x * (x - 1)}{2}$次,最终一人获胜,其它人淘汰 ...

  6. [POJ 2329] Nearest number-2

    Link: POJ 2329 传送门 Solution: 比较明显的$dp$,但爆搜好像也能过 用多个方向$dp$来解决此题,最后汇总答案即可 一开始我写了4个,但后来发现只要相反的2个方向即可,同时 ...

  7. 在java代码中设置margin

    我们平常可以直接在xml里设置margin,如: <ImageView android:layout_margin="5dip" android:src="@dra ...

  8. .net / java /安卓des加密互通

    一 . C#.net /// <summary> /// 加密数据 /// </summary> /// <param name="Text"> ...

  9. 重要的ui组件——Behavior

    v7包下的组件类似CoordinatorLayout推出也有一段时间了,大家使用的时候应该会体会到其中很多的便利,今天这篇文章带大家来了解一个比较重要的ui组件——Behavior.从字面意思上就可以 ...

  10. 什么是滤波器,滤波器是干嘛用的,IIR和FIR滤波器又是什么?(回答请简洁,别浪费大家时间)

    信号频率筛选器,用于阻挡不需要的信号: 低通滤波用来阻挡某一频率之上的所有信号: 高通滤波用来阻挡某一频率之下的所有信号: 另外还有带通滤波器,带阻滤波器..... 个人理解,就像是个过滤沙子的筛子一 ...