創客學院9天C語言三
阿新 • • 發佈:2018-11-23
①列印字母:
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。