ccc

课本第291页第4题
#include<stdio.h>

void main()
{
    int n, m, i, k;
    int p_begin;
    int arr[100];
    
    scanf("%d", &n);
    for(i = 0; i < n; i ++)
        scanf("%d", &arr[i]);
    scanf("%d", &m);
    p_begin = 0;
    p_begin = p_begin - m < 0?
    -(p_begin - m) % n : (p_begin - m) % n;
    for(i = p_begin, k = 0; k < n; k++){
        if(i >= n) i = 0;
        printf("%d ", arr[i++]);
    }
}

课本第291页第11题
#include<stdio.h>

void main()
{
    int i = 0;
    int strcmp(char *, char *);
    void sort(char *p[], int n);
    char s[100][100];
    char *p[10];
    
    // input strings 
    for(i = 0; i < 10; i ++)
        scanf("%s", s[i]);
    for(i = 0; i < 10; i ++)
        p[i] = s[i];
    
    sort(p ,10);
    // display outputs on console
    for(i = 0; i < 10; i ++)
        printf("%s\n", p[i]);
}

int strcmp(char *s, char *t)
{
    for( ; *s == *t; s++, t++)
        if(*s == '\0')
            return 0;
    return *s - *t;
}

void sort(char *p[], int n)
{
    char *temp = "hello world!";
    
    for(int i = 0; i < n ; i ++)
        for(int j = 0; j < n - i - 1; j ++)
            if(strcmp(p[j] , p[j+1]) > 0){
                temp = p[j];
                p[j] = p[j+1];
                p[j+1] = temp;
            }
    return;
}

课本习题 
#include<stdio.h>
#include<ctype.h>

void main()
{
    int i, j;
    char c;
    char s[100][100];

    i = 0;
    c = 'a';
    while(c != EOF){
        while(!isdigit(c = getchar()))
            ;
        j = 0;
        s[i][j++] = (char)c;   // 为了判断是不是数字要多读一个。
        while(isdigit(c = getchar()))
            s[i][j++] = (char)c;
        s[i++][j] = '\0';
    }

    printf("%d digits\n", i);
    for(int k = 0; k < i; k ++)
        printf("%s\n", s[k]);
}

课本第292页 18题
#include<stdio.h>

void main()
{
    char *p[] = {
        "January",
        "February",
        "March",
        "April",
        "May",
        "June",
        "July",
        "August",
        "September",
        "October",
        "November",
        "December"
    };
    
    int month;
    
    scanf("%d", &month);
    printf("%s\n", p[month-1]);
}

 

习题六

int strcmp(char *s, char *t)
{
    for( ; *s == *t; s++, t++)
        if(*s == '\0')
            return 0;
    return *s - *t;
}

习题四

#include<stdio.h>

void main()
{
    int n, m, i, k;
    int p_begin;
    int arr[100];
    
    scanf("%d", &n);
    for(i = 0; i < n; i ++)
        scanf("%d", &arr[i]);
    scanf("%d", &m);
    p_begin = 0;
    p_begin = p_begin - m < 0?
    -(p_begin - m) % n : (p_begin - m) % n;
    for(i = p_begin, k = 0; k < n; k++){
        if(i >= n) i = 0;
        printf("%d ", arr[i++]);
    }
}
D:\lab_>a
3
1 2 3
1
2 3 1

习题三

#include<stdio.h>

int main()
{
    int arr[10];
    int m, n, i;
    int sum = 0;
    
    for(i = 0; i < 10; i ++)
        scanf("%d", arr+i);
    scanf("%d %d", &m, &n);
    for(i = m; i <= n; i ++)
        sum += *(arr+i);
    printf("sum = %d", sum);
    return 0;
}

D:\lab_>a
1 2 3 4 5 6 7 8 9 0
2 3
sum = 7

习题七

#include<stdio.h>
#define MAXSIZE 1000

void insert(char *, char *, char c);
int length(char *s);
char ori_str[MAXSIZE];

void main()
{
    char insert_str[MAXSIZE];
    char c;
    // inputs
    gets(ori_str);
    gets(insert_str);
    scanf("%c", &c);
    insert(ori_str, insert_str, c);
    // outputs
    printf("%s", ori_str);
}

void insert(char s[], char t[], char c)
{
    int k, i, j;
    int p_last = length(s) + 1;
    int length_t = length(t);
    
    k = 0;
    //printf("a");
    while(s[k] != '\0'){
        if(s[k] == c){
            for(i = p_last; i >= k+1; i --)
                s[i+length_t] = s[i];
            //printf("b");
            j = 0;
            for(i = k+1; i <= k+length_t; i ++)
                s[i] = t[j ++];
        }
        k += length_t;
    }
}

int length(char *s)
{
    int n;
    
    for(n = 0; *s != '\0'; s++, n++)
        ;
    return n;
}

D:\lab_>a
aaaaa
d
a
adadadad

 

posted @ 2016-12-11 14:03  xkfx  阅读(287)  评论(0编辑  收藏  举报