cr:经典
题目34
将一个数组逆序输出。
思路:
先定义10个元素的数组;然后在输入的时候变量从小到大增加,输出的时候由大到小。
代码:
#include<stdio.h>
main()
{
int i, a[10];
printf("输入10个数字:");
for (i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
printf("原先的顺序是:");
for (i = 0; i < 10; i++) {
printf("%-3d", a[i]);
}
printf("\n倒叙输出的结果是:");
for (i = 9; i >= 0; i--) {
printf("%-3d", a[i]);
}
printf("\n");
}
对方:
// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鸟教程. All rights reserved.
//
#include<stdio.h>
#define N 10
int main()
{
int a[N]={0,1,2,3,4,5,6,7,8,9};
int i,t;
printf("原始数组是:\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);
for(i=0;i<N/2;i++)
{
t=a[i];
a[i]=a[N-1-i];
a[N-1-i]=t;
}
printf("\n排序后的数组:\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
反思&收获:
对方的方法比我的要复杂;对方用的是交换位置,而我只是调换了输出的方向。
cr:小林
例39
有n个学生的信息(包括学号、姓名、成绩),C语言编程实现按照成绩的高低顺序输出学生的信息。
思路:
结构体,直接看。
代码:
#include<stdio.h>
struct student
{
int num;
char name;
float score;
};
main()
{
struct student stu[5] = {
{10010,"Tom", 78},
{10011,"Jon", 98.5},
{10012,"Lisi",100},
{10013,"zhangsan",99},
{10014,"wangwu",10}
};
struct student t;
int i, j, k;
printf("成绩由大到小:\n");
for (i = 0; i < 4; i++) {
k = i;
for (j = i + 1; j < 5; j++) {
if (stu[j].score > stu[k].score) {
k = j;
}
}
t = stu[k];
stu[k] = stu[i];
stu[i] = t;
}
for (i = 0; i < 5; i++) {
printf("%d,%10s,%6.2f分\n", stu[i].num, stu[i].name, stu[i].score);
}
}
对方:
反思&收获:
不知道出了什么问题,输出不来。