创客学院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。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值