1. 程式人生 > >創客學院9天C語言三

創客學院9天C語言三

①列印字母:

int main (int argc,char *argv[])
{
  int i,j;
  char ch = 'F';    
  //printf ("請輸入字元:");
  //scanf("%c\n",&ch);
  for (i=0;i<=ch-'A';i++)
  {
     for (j=0;j<i;j++)
	     putchar('_');
	 for (j=0;j<=i;j++)
          putchar(ch-j);
putchar('\n');	
  }
  return 0;
}

int i,j;
char ch = ‘F’;
for (i=0;i<=ch-'A';i++)
{
   for (j=0;j<i;j++)
     putchar ('_');
	 for(i=0;j<=i;j++)
	 putchar(ch-j);
   putchar('\n');
return 0;   
}

③break跳出一層迴圈體:

int main()
{
  int r,area;
  while (1)
  {
    for(i=1;i<=10;i++)
	   area = PI*r*r;
	   if (area>100)
	   break;
	   printf("%d-%d\n",r,area);
  }
  return 0;
}  無限迴圈

④判斷素數:

int main()
{
  int n,tmp;
  printf("input n:");
  scanf ("%d",n);
  int i=2;
  tmp=sqrt(n);
  while(i<=tmp)
  {
       if (n%i==0)
       break;
	   i++;
  }
  if (i<=tmp)
     printf("%d not\n",n);
  else
    printf("%d  yes\n",n);
return 0;   
}

⑤continue:

int main (int argc,char *argv[])
{
 int n;
 for (n=100;n<=200;n++)
   {
         if (n%3==0)
	             continue;
		printf ("%d\n",n);
		}
 return 0;
}
%p 列印地址;

⑥氣泡排序;

{
  int a[] = {3,1,21,43,54,32};
  int n,i,j;
  n = sizeof(a)/sizeof(int);
  for (i =0;i<n-1;i++)
  {
    for (j=0;j<n-1-i;j++)
     {
         if (a[j]>a[j+1])
  	      {
	           t = a[j];
	          a [j]=a [j+1];
	          a [j+1]=t;	 
	      }
   }
}
  for (i=0;i<n;i++)
     printf ("%d",a[i]);
          puts("");
         return 0;
 } 

⑦ 二維陣列找最大值:

int main (int argc,char *argv[])
{
  int [2][3] = {{3,2,43},{8,32,12}};
  int i,j,row,column;
  row = column = 0;
  for (i=0;i<2;i++)
      {
	   for (j=0;j<3;j++)
	     {
	         if (a[row][column]<a[i][j])
	       	  {
		          row = i+1;
		          column = j+1;
		      }
	    }
	 }
	 
	for (i=0;i<2;i++)
        {
	         for (j=0;j<3;j++)
	         printf ("%d",a[i][j]);
		     putchar('\n'); 
	    }
  printf ("max=%d %d %d\n",a[row][column],row,column);	   
    return 0;
} 

⑧字元陣列:

char c[10],ch[3][4];
int main (int argc,char *argv[])
{
   char arr1[] = {'a','b','c'};
   char arr2[6] = {'a','b','c'};
    int i,n;
	
 	n = sizeof(arr1)/sizeof(char);
	for (i=0;i<=n;i++)
	 putchar(arr1[i]);
	 putchar('\n');
	 
      n = sizeof(arr2)/sizeof(char);
 	 for (i=0;i<=n;i++)
	 putchar(arr2[i]);
	 putchar('\n');
}

c語言中無字串變數,用字元陣列處理字串。字串結束標誌‘\0’.
%s用於真正的字串。

⑨標準二維陣列的訪問:

int main (int argc,char*argv[])
      {
         char fruit[][20] = {"apple","banana","strawberry","watermelon"};
         int i,j,m,n;
         n = sizeof(fruit) / sizeof (fruit[0]);
          m = sizeof(fruit[0]) / sizeof(char);
  
       for (i=0;i<n;i++)
      {
        for (j=0;j<m;j++)
	    putchar(fruit[i][j]);
	   putchar('\n');	
     }
  return 0;
}

int main (int argc,char*argv[])
{
  char fruit[][20] = {"apple","banana","strawberry","watermelon"};
  int i,n;
  n = sizeof(fruit) / sizeof (fruit[0]);
  for (i=0;i<n;i++)
     printf("%s\n",fruit[i]);
  return 0;
}

▲輸入字串並逆序輸出:

#include<stdio.h>
  #include<string.h>
 int main()
  {
    char a[100],b[100];
     int i,j,n;
     gets(a);//輸入字串 
     b[n=strlen(a)]='\0';//計算字串長度,並確定字元b的結束位置 
     for(i=0,j=n-1;i<n;i++)//把a逆序賦值給b 
       b[j--]=a[i];
     puts(b);//輸出s2 
     return 0;
  }  
/*
執行結果:
21324165
56142312
*/

②單純的逆序輸出

{
     char arr[] = "welcome";
     int i,n;

    n = sizeof (arr) / sizeof (char);
    for (i=n-1;i>=0;i--)
    putchar (arr[i]);
    putchar('\n');
    return 0;
}	

#include <string.h>
{
   char arr[N]={0};
   int i,n;
   printf("Please input a string");
   gets(arr);
   
    n = strlen(arr);
    for (i=n-1;i>=0;i--)
    putchar (arr[i]);
    putchar('\n');
    return 0;
}

▲字串函式:
①字串長度函式strlen
返回字串實際長度不包括‘\0‘在內。
char s[10]={‘A’,’\0’,‘B’}…長度為1
\xhh表示十六進位制數代表的符號
\ddd表示8進位制的
②字串拷貝函式strcpy;
strcpy(字元陣列1,字串2),將2拷到1.
:char src[] = “makeru”;
char dest [N];
strcpy (dest,src);
③ 字串連線函式strcat
strcat (字元陣列1,字元陣列2),把2接到1後。
④字串比較函式strcmp:
strcmp(字串1,字串2)
對兩串從左向右逐個字元比較(ASC||碼),直到遇到不同字元或’\0‘為止。
a:若字串1<字串2,返回負整數。-1
b: >.返回1
c: == 返回0
⑤strncpy拷貝函式。strncpy(dest,src,n)
strncat連線函式。n有長度。
strncmp比較指定長度n。