//
// main.c
// -C-4
//
// Created by lanqs on 14/12/9.
// Copyright (c) 2014年 . All rights reserved.
//
#include
#include
#include
#include
int main(int argc, const char * argv[]) {
#pragma mark - 1.编写一个C程序,接收用户输入的7个温度,然后求出7个温度的平均值,然后打印该平均值。
// float a[7]={0};
// float sum,pi;
// for (int i = 0; i < 7; i ++) {
// scanf("%f", &a[i]);
// sum+=a[i];
// }
// pi=sum/7;
// printf("pi=%f",pi);
#pragma mark - 2.循环录入5个数字,然后按反序输出(将一个数组中的值按逆序重新存放,例如原来的顺序为:8,6,5,4,1.要求改为:1,4,5,6,8;并将数组中的值输出)
// int a[5]={};
// for (int i = 0; i < 5; i ++) {
// scanf("%d",&a[i]);
// }
// for (int i = 0; i < 3; i ++) {
// int temp = a[i];
// a[i] =a [4-i];
// a[4-i] = temp;
// }
// for (int i = 0; i < 5; i ++) {
// printf("%d ",a[i]);
// }
#pragma mark - 3.随机产生20个100-200之间的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值,然后将各元素的与平均值的差组成一个新数组。(arc4random()函数)
// int a[20] = {0};
// int max = a[0],min = 300,sum=0,pi = 0;
// int b[20] = {0};
// for (int i = 0; i < 20; i ++) {
// //取100以内随机数+100
// a[i] = (arc4random() % 100) + 100;
printf("%d ", a[i]);
// if (max < a[i]) {
// max=a[i];
// }
// if (min > a[i]) {
// min = a[i];
// }
// sum+=a[i];
// pi=sum/20;
// b[i]=a[i]-pi;
// }
// printf("max=%d min=%d pi=%d ",max,min,pi);
// printf("\n");
// printf("新数组\n");
// for (int i = 0; i < 20; i ++) {
// printf("%d ",b[i]);
// }
#pragma mark - 4.有一行英文语句,统计其中的单词个数(单词之间以空格分隔),并将每一个单词的第一个字母改为大写。
// char a[100] = {0};
// int flag=1;
// // scanf("%s",&a[100]);
// int number = 0;
// printf("请输入单词:");
// gets(a);
// for (int i = 0; a[i]!='\0'; i ++) {
if((a[i] >= 'a' && a[i] <= 'z')|| (a[i] >= 'A' && a[i] <= 'Z')){
number ++;
}
// if (a[i] == ' ') {
// flag = 1;//只做标记的操作1
number++;
//如果有多个空格,用了这个方法,字符都不是空格了,以后就不能执行这个方法
a[i+1]-=32;
// }else if (flag == 1){//这个语句的意思是判断前面一个是空格
// number++;
// flag = 0;
// //为什么是a[i]而不是a[i+1]呢?
// //因为,这已经是上面的下一个循环了这里的i是上面那个的i+1
// //上面的执行的话拒不执行这一句了,如果输入的不是空格,就会执行这个,已经是下一个循环了
// a[i]-=32;
// }
// }
// printf("有%d个单词", number);
// printf("\n");
// for (int i = 0; i < 100; i ++) {
//把小写转化为大写
if (a[0] >= 'a' && a[0] <= 'z') {
a[0] -= 32;
}
// printf("%c",a[i]);
// }
#pragma mark - 5.编写一个C程序,接收10个分数(score)的输入,然后将其进行排序(从大到小),然后将这些分数打印出来。排序建议使用冒泡排序,当然如果会其他算法,也可以使用其他算法进行排序。
// float a[10]={0};
// for (int i = 0 ; i < 10; i ++) {
// scanf("%f", &a[i]);
// }
// for (int i =0 ; i < 10 ; i ++) {
// for (int j= i ; j < 10 ; j ++) {
// if (a[i] < a[j]) {
// int temp = a[i];
// a[i]= a[j];
// a[j]= temp;
// }
// }
// printf("%.2f ",a[i]);
// }
#pragma mark - 6.数组有1000个元素,设数组a[1000],存放1-1000个数值,但是现在有一个数值重复了,只扫描一遍数组,找出那个重复的数。(注:本题可以先采用10个数做例子,不需要循环录入1000个数)
// int a[10]={1,2,3,4,5,6,7,7,9,2};
// for (int i = 0 ; i < 10 ; i ++) {
// for (int j = i ; j < 10; j ++) {
// if(a[i]==a[j]&&i!=j){
// printf("%d ",a[i]);
// }
// }
// }
#pragma mark - 7.将一个二维数组a的行和列的元素互换(即行列转置)
// int a[3][3]={1,2,3,4,5,6,7,8,9};
// for (int i = 0 ; i < 3 ; i ++) {
// for (int j = i ; j < 3 ; j ++) {
// int temp = a[i][j];
// a[i][j] = a[j][i];
// a[j][i] = temp;
// }
// }
// for (int i =0 ; i < 9; i ++) {
// printf("%d ", a[0][i]);
// }
#pragma mark - 8.尝试理解gets()函数,去输入一个字符串并使用puts()函数打印输出该字符串,且,使用scanf()函数来输入和打印相同字符
// char a[100]={0};
// char b[100]={0};
// gets(a);
// puts(a);
// scanf("%s",&b[100]);
// printf("scanf输入:\n");
// for (int i = 0; i
// scanf("%c",&b[i]);
//
// }
// puts(b);
#pragma mark - 9.不使用系统库函数strcpy(),尝试手写一个程序,实现strcpy()原理,将字符数组s2中的全部字符复制到字符数组s1中;
// char s1[100] ={0};
// char s2[100]="hello world";
// for (int i = 0 ; i < 20 ; i ++) {
// s1[i]=s2[i];
// }
// puts(s1);
#pragma mark - 杨辉三角的实现
#pragma mark - 找出一个二维数组中的鞍点,即在该位置上的元素在该行上最大,在该列上最小;也可能没有鞍点(二维数组中没有重复数)
#pragma mark - 求整型数组(每个元素都是0-9的整数)中最长连续元素子串所组成的最大的数值。
printf("\n");
return 0;
}