標籤:c 指標
題目請見 http://download.csdn.net/download/wangpegasus/5701765
第四章以下通過VS2012
1、
#include "stdafx.h"double sqrt(double temp){double before, after;before = 1.0;after = 1.0;do{before = after;after = (before + temp/before)/2;} while (before != after);return after;}int _tmain(int argc, _TCHAR* argv[]){double temp,result;puts("input N:");scanf_s("%lf",&temp);result = sqrt(temp);printf("sqrt N = %lf \n",result);return 0;}
2、
#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){int length = 100;puts("Prime(1~100):\n");for (int i = 1; i <= length; i++){int ALU = 0;for (int j =1; j <= i; j++){if (i%j == 0){ALU++;}}if (ALU == 2){printf("%d\t", i);}}return 0;}
3、
#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){int a,b,c;puts("輸入三邊長度(a,b,c):\n");do{scanf_s("%d,%d,%d",&a,&b,&c);} while ((a+b)<=c || (a+c)<=b || (b+c)<=a);if ((a == b)&&(b == c)){puts("等邊!");}else if ((a==b)||(b==c)||(c==a)){puts("等腰!");}else{puts("不等邊!");}return 0;}
4、2B方法:
void copy_n( char dst[], char src[], int n ){int i,l_src;l_src = 0;for (i = 0; dst[i] == '\0'; i++){l_src++;}if (l_src < n){for (i = 0; i < l_src; i++){dst[i] = src[i];}for (i = l_src; i < n; i++){dst[i] = '\0';}}else{for (i = 0; i < n; i++){dst[i] = src[i];}}}
正確做法:
void copy_n( char dst[], char src[], int n ){int dst_index, src_index;src_index = 0;for (dst_index = 0; dst_index < n; dst_index++){dst[dst_index] = src[src_index];if (src[src_index] != 0){src_index++;}}}
5、涉及到太多字串處理,略。
6、
void substr(char dst[], char src[], int start, int len){int dst_index, src_index, l_src;l_src =src_index = 0;do{l_src++;} while (src[l_src] != '\0' );if (start < 0 || len < 0 || start > l_src ++){dst[0] = '\0';}else{for ( dst_index = 0; dst_index < len; dst_index++){dst[dst_index] = src[src_index + start];if (src[src_index] != '\0'){src_index++;}}}}
7、
void deblank(char string[]){char copy_str[] = {'\0'};int str_index, copy_str_index, temp = 0;for ( str_index = 0; string[str_index] != '\0'; str_index++){if (string[str_index] == ' '){if (temp > 0){continue;}else{copy_str_index++;copy_str[copy_str_index] = string[str_index];temp++;}}else{copy_str_index++;copy_str[copy_str_index] = string[str_index];}}copy_str[copy_str_index++] = '\0';for ( copy_str_index = 0; copy_str[copy_str_index] != '\0'; copy_str_index++){string[copy_str_index]= copy_str[copy_str_index];}string[copy_str_index + 1] = '\0';}