c語言程序設計現代方法第三章編程題

//name:test3_1.c
//purpose:編寫一個程序,以月/日/年(即mm/dd/yy)的格式接受用戶錄入的日期信息,並以年月日(即yyyymmdd)的格式將其顯示出來
//author:bat stone
//date:2011.7.22

#include <stdio.h>

int main(void)
{
    int y, d, m;

    printf("Enter a date (mm/dd/yyyy): ");
    scanf("%d/%d/%d", &m, &d, &y);
    
    printf("You entered the date %d%d%d\n", y, m, d);

    return 0;

}



//Description:編寫一個程序,對用戶錄入的產品信息進行格式化
///author:bat stone
//date:2011.7.22

#include <stdio.h>

int main(void)
{
    int number;
    float price;
    int y, m, d;

    printf("Enter item number:");
    scanf("%d",&number);

    printf("Enter unit price:");
    scanf("%f",&price);

    printf("Enter pruchase date (mm/dd/yyyy):");
    scanf("%d/%d/%d",&m, &d, &y);

    printf("Item\tUnit\t\tPurchase\n\tprice\t\tDate\n");
    printf("%-d\t$%7.2f\t%d/%d/%d\n",number, price, m, d, y);

    return 0;

}


//圖書館國際標準書號(978-0-393-97950-3)進行分組解析
//author:bat stone
//date:2011.7.22

#include <stdio.h>

#define GROUPS 5
#define LENGTH 11

int main(void)
{
    char pGs1[GROUPS][LENGTH];   //用來存儲解析好後的數據(GS1前綴,語言,出版商編號,產品編號,校驗碼)
    char *p;            //組指針
    char isbn[256];        //圖書館國際標準書號
    char *p1;            //遊標指針
    int count = 0;        //組號
    
    p = pGs1[count];    
    
    gets(isbn);        //獲得圖書館國際標準書號
    
    //圖書館國際標準書號(978-0-393-97950-3)進行分組解析,存入pGs1中
    p1 = isbn;
    while(*p1 != '\0')
    {
        *p++ = *p1++;
        if(*p1 == '-')
        {
            *p = '\0';
            p1++;
            ++count;
            p = pGs1[count];
        }
    }
    *p++ = '\0';        //對最後一組數據添加結束符號

    //輸出分組後的數據
    for(count = 0; count < 5; ++count)
    {
        puts(pGs1[count]);
    }
    
    return 0;
}



//Description: 將(xxx) xxx-xxxx的電話號碼轉化成xxx.xxx.xxxx
//author:bat stone
//date:2011.7.22

#include <stdio.h>
#include <string.h>

#define LEN 20

int main(void)
{
    char phone[LEN];
    char *p, *p1, *p2;

    printf("Enter phone number [(xxx) xxx-xxxxxx]: ");
    gets(phone);

    p = phone;
    p1 = ++p;
    
    //將數據中的‘)’去掉,並將電話字符串分割p1,p2    
    while(*p && *p != ')')
        ++p;
    *p++ = '\0';
    
    //替換後面的空格和‘-’
    p2 = p;
    while(*p++ != '\0')
    {
        if((*p == ' ') || (*p == '-'))
        {
            *p = '.';
        }
    }
    
    sprintf(phone,"%s%s",p1,p2);        //生成轉換後的phone
      puts(phone);

    return 0;
}



//Description:用任意的方式輸入1 ~ 16的所有整數,用4*4的矩陣輸出,計算觀察每行、每列和正負對角線上的和
//author:bat stone
//date:2011.7.22

#include <stdio.h>

int main(void)
{
    int a[4][4];
    int i,j;
    int r[4] = {0}, c[4] = {0};
    int sum1 = 0, sum2 = 0;
    
    printf("Enter the numbers from 1 to 16 in any order:");
    for(i=0;i<4;++i)
    {
        for(j=0;j<4;++j)
        {
            scanf("%d",&a[i][j]);
        }
    }
        
    for(i = 0; i < 4; ++i)
    {
        for(j = 0; j < 4; ++j)
        {
            printf("%4d",a[i][j]);
            r[i] += a[i][j];        //每行的和
            c[i] += a[j][i];        //每列的和
            
            if(i == j)
                sum1 += a[i][j];        //主對角線上的和
                
            if((i + j) == 3)
                sum2 += a[i][j];        //負對角線上的和
        }
        printf("\n");
    }
    
    printf("Row sums: %d %d %d %d\n",r[0],r[1],r[2],r[3]);
    printf("Cow sums: %d %d %d %d\n",c[0],c[1],c[2],c[3]);
    printf("Diagonal sums: %d %d\n",sum1,sum2);

    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章