C入門【三】
阿新 • • 發佈:2019-01-06
本頁為C入門【二】題型續篇主要補充部分個人認為經典題型
1. 將陣列A中的內容和陣列B中的內容進行交換。(陣列一樣大)
此題為之前交換瓶子題 提升版 難度不大 沒有太大的技術難點主要是要用來測試交換瓶子以陣列形式
int change(){
//. 將陣列A中的內容和陣列B中的內容進行交換。(陣列一樣大)
int i, len;
int a[10];
int b[10];
int temp;
for (i = 0; i <= 9; i++){
a[i] = random(100);
b[i] = random(100);
//初始化隨機兩個陣列
}
len = sizeof(a) / sizeof(a[0]);
printf("變化之前||||||||||\n");
printf("陣列A:");
for (i = 0; i <= 9; i++){
printf("%d,", a[i]);
}
printf("\n");
printf("陣列B:");
for (i = 0; i <= 9; i++){
printf("%d,", b[i]);
}
printf("\n變化之前||||||");
for (i = 0; i <= len; i++){
temp = a[i];
a[i] = b[i];
b[i] = temp;
}
printf("\n");
printf("變化之後||||||||||\n");
printf("陣列A:");
for (i = 0; i <= 9; i++){
printf("%d,", a[i]);
}
printf("\n");
printf("陣列B:");
for (i = 0; i <= 9; i++){
printf("%d,", b[i]);
}
printf("\n變化之後||||||");//. 將陣列A中的內容和陣列B中的內容進行交換。(陣列一樣大)
int i, len;
int a[10] ;
int b[10];
int temp;
for (i = 0; i <= 9; i++){
a[i] = random(100);
b[i] = random(100);
//初始化隨機兩個陣列
}
len = sizeof(a) / sizeof(a[0]);
printf("變化之前||||||||||\n");
printf("陣列A:");
for (i = 0; i <= 9; i++){
printf("%d,", a[i]);
}
printf("\n");
printf("陣列B:");
for (i = 0; i <= 9; i++){
printf("%d,", b[i]);
}
printf("\n變化之前||||||");
for (i = 0; i <= len; i++){ //陣列變化交換
temp = a[i];
a[i] = b[i];
b[i] = temp;
}
printf("\n");
printf("變化之後||||||||||\n");
printf("陣列A:");
for (i = 0; i <= 9; i++){
printf("%d,", a[i]);
}
printf("\n");
printf("陣列B:");
for (i = 0; i <= 9; i++){
printf("%d,", b[i]);
}
printf("\n變化之後||||||");
return 0;
}
2. 計算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
此題難點在於 陣列型別 部分易錯點在於初始化過程中int 導致後續在計算中結果為0無法達到預期目標。 %.2f 對結果的優化 pow函式的使用
int total(){
//計算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值。
int i;
float total = 0;
printf("1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 1001 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100");
for (i = 1; i <= 100; i++){
total += pow(pow(-1, (i + 1))*i, -1);
}
printf("\n%.5f", total);
}
3. 編寫程式數一下 1到 100 的所有整數中出現多少次數字9。
本體的優勢在於對篩選數字過程中 一開始只考慮((j % 10) % 9 == 0)) 而忽略 10 20 .。100也符合情況。
int j;
int count=0;
for (j = 1; j<= 100; j++){
if ((j%10!=0)&&((j % 10) % 9 == 0)){
printf("%d, ", j);
count++;
}
}
printf("\n%d",count);
總結
經過這幾天對C入門的掌握 開始學會對之前在學習中的忽略的問題重新掌握 C入門的難點在於對For迴圈以及對迴圈條件語句的使用 這方面以加強練習為主
生命不息 奮鬥不止