C语言 数组、函数应用实例篇
2015-07-21 19:55
465 查看
Seven Day
1、编写程序,任意输出10个整数的数列,先将整数按照从小到大的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序
#include<stdio.h> void mop(int n, int a[]) { //定义mop()函数 int i, j, temp; for (i = 0; i < n; i++) { //冒泡排序 ,从大到小 for (j = 0; j < n - i; j++) { if (a[j] < a[j + 1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } for (i = 0; i < n + 1; i++) { //遍历排好序的数组 printf("%d ", a[i]); } } int main(void) { int a[5], i, num; printf("请输入4个整数的数列:"); for (i = 0; i < 4; i++) { scanf("%d", &a[i]); //输入4个整数 } mop(3, a); //调用函数 printf("\n"); printf("请输入一个将插入数列中的整数:"); scanf("%d", &num); //输入需插入的整数 printf("\n"); a[4] = num; mop(4, a); //调用函数 }输出结果:[/code]
2、输入一个正整数将其转化为二进制并输出。(使用数组存储二进制的每一位)
#include<stdio.h>int main(void) {int num = 0, i, j, a[100];printf("请输入一个整数:");scanf("%d", &num);for (i = 0; 1; i++) {if (num == 1) {a[i] = 1;break;}a[i] = num % 2;num /= 2;}for (j = i; j > -1; j--) { //倒序输出a[i]中的元素,得到二进制数printf("%d", a[j]);}}输出结果:[/code]
3、输入年月日,判断这天是该年份的第几天。
switch 方法
#include<stdio.h>int main(void) {int year, month, day, feb = 28, count = 0;printf("请输入年:\n");scanf("%d", &year);printf("请输入月:\n");scanf("%d", &month);printf("请输入日:\n");scanf("%d", &day);if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) { //判断是否为闰年feb = 29;}switch(month - 1) {case 12 : count += 31;case 11 : count += 30;case 10 : count += 31;case 9 : count += 30;case 8 : count += 31;case 7 : count += 31;case 6 : count += 30;case 5 : count += 31;case 4 : count += 30;case 3 : count += 31;case 2 : count += feb;case 1 : count += 31;}count += day; //计算天数printf("%d", count);}
array 方法
#include<stdio.h>int main(void) {int year, month, day, i, count = 0, a[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};//定义数组printf("请输入年:\n");scanf("%d", &year);printf("请输入月:\n");scanf("%d", &month);printf("请输入日:\n");scanf("%d", &day);if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {// 判断是否为闰年a[1] = 29;}for (i = 0; i < month - 1; i++) {count += a[i];}count += day; //计算天数printf("%d", count);}
输出结果:
3、把一个字符串倒序输出
#include<stdio.h>#include<string.h>int main() {char a[] = "abcdefghrjklmnopqrstuvwxyz"; //定义一个数组,存放字符串int count = 0;int i;for (i = 0; 1; i++) { //计算该数组的字符个数count++;if (a[i] == '\0') {break;}}char b[count]; //声明数组b[]for (i = 0; 1; i++) {if (i == 0) {b[(count - 1) - i] = '\0';} else {b[(count - 1) - i] = a[i - 1]; //将a数组的元素倒序赋值给数组b}if (a[i] == '\0') {break;}}printf("倒序输出为:%s\n数组长度为:%d\n", b, strlen(b));}输出结果:[/code]
4、冒泡排序
#include<stdio.h>int main(void) {int a[4], i, j, temp;for (i = 0; i < 4; i++) {scanf("%d", &a[i]);}for (i = 0; i < 3; i++) {for (j = 0; j < 3; j++) {if (a[j] < a[j + 1]) {temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}for (i = 0; i < 4; i++) {printf("%d\t", a[i]);}}输出结果:[/code]
5、求水仙花素(两种方法)
方法一
#include<stdio.h>int main(void) {int i, a, b, c;for (i = 100; i < 1000; i++) {a = i / 100; //百位数b = i / 10 % 10;//i / 10 - a * 10 //十位数c = i % 10; //个位数if (i == a * a * a + b * b * b + c * c * c) { //判断百位、十位、个位数的3次方的和是否和这个三位数相同printf("%d\n", i);}}}
方法二
#include<stdio.h>int main(void) {int i, j, k;for (i = 1; i < 10; i++) {for (j = 0; j < 10; j++) {for (k = 0; k < 10; k++) {int num = i * 100 + j * 10 + k;if (num == i * i * i + j * j * j + k * k * k) {printf("%d\n", num);}}}}}
输出结果:
相关文章推荐
- 【Visual C++】游戏开发笔记十九 DirectX与OpenGL的博弈
- C语言不使用库函数对字符串操作
- 幻方的实现,矩阵每行每列每个对角线之和相等
- 计算几何模板
- C语言--程序设计基础(二)
- 二叉搜索树【BST】c++实现
- STL LIST链表的使用 C++
- 2015年ALPC暑期专题练习I (计算几何) G - Treasure Hunt
- c++引用计数实现
- c++ stl vector的用法
- 哈希表系列:初探哈希(二),c语言实现
- OC语言数组
- C语言实现递归删除文件夹
- C语言基础6
- 12天学好C语言——记录我的C语言学习之路(Day 12)
- 12天学好C语言——记录我的C语言学习之路(Day 12)
- C++ 实现string的split
- 12天学好C语言——记录我的C语言学习之路(Day 11)
- 12天学好C语言——记录我的C语言学习之路(Day 11)
- POJ 2387