您的位置:首页 > 编程语言 > C语言/C++

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);}}}}}
输出结果:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: