①打印字母:
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。