#include <stdio.h>
void sum_diff(int *n1,int *n2,int *sum,int *diff)
{
 *sum=*n1+*n2;
 *diff=(*n1>*n2)?*n1-*n2:*n2-*n1;
 printf("地址sum:%d 地址diff:%d \n",&sum,&diff);
 
}
int main()
{
 int na,nb;
 int wa=0,sa=0;
 puts("请输入两个数整数:");
 printf("整数A:");
 scanf("%d",&na);
  
 printf("整数B:");
 scanf("%d",&nb);
 sum_diff(&na,&nb,&wa,&sa);
 printf("两数之和%d 两数之差%d\n",wa,sa);
 printf("地址wa:%d 地址sa:%d",&wa,&sa);
 return 0;
 
}

#include "stdio.h"
int main(void)
{
 int sato=178;
 int sanaka=175;
 int hiraki=165;
 int masaki=179;
 int *isako,*hiroko;
 isako=&sato;
 hiroko=&masaki;
 
 printf("伊莎喜欢的人的身高:%d\n",*isako);
 printf("洋子喜欢的人的身高: %d\n",*hiroko);
 
 isako=&sanaka;
 *hiroko=180;
 putchar("\n");
 printf("sata %d\n",sato);
 printf("sanaka %d\n",sanaka);
 printf("hiraki %d\n",hiraki);
 printf("masaki %d\n",masaki);
 
 printf("伊莎喜欢的人的身高:%d\n",*isako);
 printf("洋子喜欢的人的身高 %d\n",*hiroko);
 
 
 
}

#include "stdio.h"
int main()
{
 int i;
 int vc[5]={10,20,30,40,50};
 int *ptr=&vc[0];
 for(i=0;i<5;i++)
 printf("vc[%d]=%d ptr[%d]=%d *(ptr+%d)=%d\n",i,vc[i],i,ptr[i],i,*(ptr+i));
}

#include "stdio.h"
int main(void)
{
 //指针与指针之间也可以进行运算符和关系符的比较
 int vc[3];
 int *ptr=vc;
 printf("vc==ptr:%d\n",vc==ptr);
 printf("&vc[1]<=&vc[1]:%d\n",&vc[1]<=&vc[1]);
 printf("&vc[1]<=&vc[2]:%d\n",&vc[1]<&vc[2]);
 printf("&vc[2]-&vc[0]:%d\n",&vc[2]-&vc[0]);
}

#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
int main()
{
struct horse{
int age;
int height;
char name[20];
char father[20];
char mother[20];
struct horse *next
};
struct horse *first=NULL;
struct horse *current=NULL;
struct horse *previous=NULL;

char test='\0';
for(; ; )
{
printf("enter details of a%s horse(Y or N)?",first !=NULL?"nother":"");
scanf(" %c",&test);
if(tolower(test)=='n') break;
current=(struct horse*)malloc(sizeof(struct horse));
if(first==NULL)
first=current;
if(previous !=NULL)
previous->next=current;
printf("\nEnter the name of the horse:");
scanf("%s",current->name);
printf("\nEnter the age of the horse:");
scanf("%d",&current->age);
printf("\nEnter the height of the horse:");
scanf("%d",&current->height);
printf("\nEnter the father of the horse:");
scanf("%s",current->father);
printf("\nEnter the name mother of the horse:");
scanf("%s",current->mother);
current->next=NULL;
previous=current;

}

current=first;
while(current !=NULL)
{
printf("\n\n%s is %d years old,%d hands high,",current->name,current->age,current->height);
printf("and has %s and %s as parents",current->father,current->mother);
previous=current;
current=current->next;
free(previous);
}
}

8、冒泡排序

#include "stdio.h"
#define NUMBER 5
void swap(int *x,int *y)
{
 int temp=*x;
 *x=*y;
 *y=temp;
}
void sort(int data[],int n)
{
 int k=n-1;
 while(k>=0)
 {
  int i,j;
  for(i=1,j=-1;i<=k;i++)
 
   if(data[i-1]>data[i])
   {
    j=i-1;
    swap(&data[i],&data[j]);
   }
     k=j;
  
 }
}
int main()
{
 int i;
 int height[]={178,175,173,165,179};
 sort(height,NUMBER);
 for(i=0;i<NUMBER;i++)
 printf("%2d:%4d\n",i+1,height[i]);
 return 0;
}

9、结构体

#include "stdio.h"
#include "string.h"
struct gstudent{
 char name[20];
 int height;
 float weight;
 long schols; 
};
void hiroko(struct gstudent *std)
{
 if((*std).height<180) (*std).height=180;
 if((*std).weight>180) (*std).weight=80;
 
}
int main()
{                          
 struct gstudent sanaka={"sanaka",175,181.5,70000};
 hiroko(&sanaka);
  printf("姓名=%s\n",sanaka.name);
   printf("身高=%d\n",sanaka.height);
    printf("体重=%f\n",sanaka.weight);
    printf("奖学金=%ld\n",sanaka.schols);
    return 0;
 
}

10、结构体二

#include "stdio.h"
#include "string.h"
typedef struct {
 char name[20];
 int height;
 float weight;
 long schols; 
}student;
void hiroko(student *std)
{
 if(std->height < 180)  std->height=180;
 if(std->weight > 80)  std->weight=80;
 
}
int main()
{                          
 student sanaka={"sanaka",175,181.5,70000};
 hiroko(&sanaka);
  printf("姓名=%s\n",sanaka.name);
   printf("身高=%d\n",sanaka.height);
    printf("体重=%f\n",sanaka.weight);
    printf("奖学金=%ld\n",sanaka.schols);
    return 0;
 
}

10、返回结构体的函数

#include "stdio.h"

struct xyz{
 int mx;
 long my;
 double mz;
};
//返回结构体xyz
struct xyz set_xyz(int x,long y,double z)
{
 struct xyz temp;
 temp.mx=x;
 temp.my=y;
 temp.mz=z;
 return (temp);
}
int main(void)
{
 struct xyz xyz={0,0,0};
 xyz=set_xyz(10,320,13.76);
 printf("xyz.mx=%d\n",xyz.mx);
 printf("xyz.my=%ld\n",xyz.my);
 printf("xyz.mz=%f\n",xyz.mz);
 return 0;
 
}

11、寻找制定元素的指针

#include <stdio.h>
int search(int *apt,int n,int key)
{
 int *p;
 for(p=apt;p<apt+n;p++)
 if(*p==key) return p-apt;
 return -1;
}
int *find(int *apt,int n,int key)
{
 int *p;
 for(p=apt;p<apt+n;p++)
 if(*p==key)
 return p; 
 return NULL; 
}
int a[]={90,80,70,60,30,20,10,9,8,7,6,5,42,40,50,1,2,3};
int main()
{
 int i,key;
 printf("the elements of array a is: \n");
 for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
 printf(" %d",a[i]);
 printf("\n the address of a[0] is: %d.\n",&a[0]);
 puts("\nplease input the key number you want to search:");
 scanf("%d",&key);
 i=search(a,sizeof(a)/sizeof(a[0]),key);
 printf("\nthe label number of the key number %d in the array is:%d.",key,i);
 printf("\nthe point value of the key number %d in the array is:%d.",key,find(a,sizeof(a)/sizeof(a[0]),key));
  
 puts("\n\n press any key to quit...");
 getchar();  
}

12 汽车燃料问题

#include "math.h"
#include "stdio.h"
#define sqr(n) ((n)*(n))
typedef struct {

int x;
int y;
}point;
typedef struct{

double fuel;
point pt;
}car;
void put_info(car c)
{
printf("当前位置:(%d,%d)\n",c.pt.x,c.pt.y);
printf("剩余燃料:%.2f升\n",c.fuel);
}
int move(car *c,int dx,int dy)
{
double dist=sqrt(sqr(dx)+sqr(dy));
if(dist>c->fuel)
return 0;
c->pt.x +=dx;
c->pt.y +=dy;
c->fuel -=dist;
return 1;
}
int main(void)
{
car mycar={90.0,{0,0} };
while(1){
int slct;
int dx,dy;
put_info(mycar);
printf("开动汽车吗 yes1 /no 0");
scanf("%d",&slct);
if(slct !=1) break;
printf("x方向的行驶距离:");
scanf("%d",&dx);
printf("y方向的行驶距离");
scanf("%d",&dy);
if(!move(&mycar,dx,dy))
puts("\a燃料不足无法行驶");
}
return 0;
}

13 无符号数的

#include "stdio.h"
int count_bits(unsigned x)
{
 
 int count=0;
 while(x){
  if(x&1u) count++;
  x >>=1;
 }
 return(count);
}
int int_bits(void)
{
 return(count_bits(~0u));
}
void print_bits(unsigned x)
{
 int i;
 for(i=int_bits()-1;i>=0;i--)
  putchar(((x>>i)&1u)?'1':'0');
}
int main()
{
 unsigned nx;
 printf("请输入一个非负整数:");
 scanf("%u",&nx);
 print_bits(nx);
 putchar('\n');
 return 0;
 
 
}

14、统计行数、字符串数、字母数

#include "stdio.h" #define IN 1 #define OUT 0

int main() {  int c,n1,nw,nc,state;  state=OUT;  n1=nw=nc=0;  while((c=getchar())!=EOF){      ++nc;   if(c=='\n')   ++n1;   if(c==' '||c=='\n'||c=='\t')   state=OUT;   else if(state==OUT){    state=IN;    ++nw;   }  }  printf("%d %d %d\n",n1,nw,nc); }

15、统计各个数字、空白符、其他字符

#include "stdio.h"
int main()
{
 int c,i,nwhite,nother;
 int ndigit[10];
 nwhite=nother=0;
 for(i=0;i<10;i++)
  ndigit[i]=0;
  while((c=getchar()) !=EOF)
   if(c>='0' &&c <= '9')
   ++ndigit[c-'0'];
   else if(c==' '||c=='\n'||c=='\t')
   ++nwhite;
   else
   ++nother;
   printf("digits =");
   for(i=0;i<10;i++)
   {
    printf(" %d",ndigit[i]);
    
      }
      printf(",white space=%d,other=%d\n",nwhite,nother);
}

c语言学习的更多相关文章

  1. C语言学习<输入输出函数,函数的调用>

    #include <stdio.h> /* 输入输出函数的学习 函数的调用 2017.05.25 soulsjie */ //输入连个数字求最大值 void main(){ int Max ...

  2. c语言的输入输出函数

    参考文章: http://blog.sina.com.cn/s/blog_784f40b80100psg9.html C语言输入输出函数分为两类: 1.格式化输入输出函数 2.非格式化输入输出 --- ...

  3. C语言博客作业—函数嵌套调用

    一.实验作业 1.1 PTA题目:递归法对任意10个数据按降序排序 1.1.1设计思路 void sort(int a[],int n) { 定义整型循环变量i,中间变量temp,最小值min: 令m ...

  4. C语言中输入输出函数

    1.1.1 格式化输入输出函数Turbo C2.0 标准库提供了两个控制台格式化输入. 输出函数printf() 和scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据.pri ...

  5. C语言 · 字符串输入输出函数

    算法提高 3-2字符串输入输出函数   时间限制:1.0s   内存限制:512.0MB      描述 编写函数GetReal和GetString,在main函数中分别调用这两个函数.在读入一个实数 ...

  6. Go语言学习笔记(7)——函数和方法

    Go语言中同时有函数和方法! 函数: go程序必须要包含一个main函数.main函数不能有任何参数和返回值! 1. 定义方法示例: func max(num1, num2 int) int { // ...

  7. 【Go语言学习】匿名函数与闭包

    前言 入坑 Go 语言已经大半年了,却没有写过一篇像样的技术文章,每次写一半就搁笔,然后就烂尾了. 几经思考,痛定思痛,决定金盆洗手,重新做人,哦不,重新开始写技术博文. 这段时间在研究Go语言闭包的 ...

  8. 【Go语言学习笔记】函数做参数和闭包

    函数做参数 在Go语言中,函数也是一种数据类型,我们可以通过type来定义它,它的类型就是所有拥有相同的参数,相同的返回值的一种类型.类似于重写(同名覆盖). 回调函数:函数有一个参数是函数类型,这个 ...

  9. 【C语言学习】-06 函数

    函数分类.函数声明和定义.函数调用,形参实参.函数嵌套调用

  10. go语言基础之普通函数的调用流程

    函数调用流程:先调用后返回,先进后出,函数递归,函数调用自己本分,利用此物点 1.普通函数的调用流程 package main //必须 import "fmt" func fun ...

随机推荐

  1. C# SerialPort的简单使用

    SerialPort中串口数据的读取与写入有较大的不同.由于串口不知道数据何时到达,因此有两种方法可以实现串口数据的读取.一.线程实时读串口:二.事件触发方式实现.由于线程实时读串口的效率不是十分高效 ...

  2. 修饰模式(Decorator结构型)C#简单例子

    修饰模式(Decorator结构型)C#简单例子 玩家基本功能是移动.运行等等.BaseAbility新增加功能:1.伤害技能harmAbility:2.阻碍技能BaulkAbility:3.辅助技能 ...

  3. NOI2008假面舞会

    1064: [Noi2008]假面舞会 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 883  Solved: 462[Submit][Status] ...

  4. JAVA与.NET的相互调用——通过Web服务实现相互调用

    JAVA与.NET是现今世界竞争激烈的两大开发媒体,两者语言有很多相似的地方.而在很多大型的开发项目里面,往往需要使用两种语言进行集成开发.而很多的开发人员都会偏向于其中一种语言,在使用集成开发的时候 ...

  5. hunnu---11547 你的组合数学学得如何?

    解析:比较简单的DP,从左向右一个一个连续着放,dp[X][Y]表示到第X个硬币的时候Y状态的方案数,Y=0表示x左边那个不是正面的,Y=1表示x左边那个是正面 如果左边不是正面,那么当前放正面的就把 ...

  6. 编写一个jsp页面,输出九九乘法表。

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  7. å∫ç∂´ƒ©˙ˆ∆˚¬µ˜øπœ®ß†¨√∑≈¥Ω who know?

    ´é∑w∑w∑wqq¡œœ∑åååß∂˚¬∆¬˚∆˙ß∂ƒµ˜∫√ç≍Ωåœ∑´®†¥¨ˆøπ“‘æ…¬˚∆˙©ƒ∂ßåΩ≍ç≍ç√∫˜µ≤≥÷÷¡™£¢∞§§¶••ªº–≠«``¡™£¢∞§¶•ªº ...

  8. VS2013 MVC Web项目使用内置的IISExpress支持局域网内部机器(手机、PC)访问、调试

    VS2013内置了IISExpress.做asp.net MVC的web项目开发时,Ctrl+F5和F5启动项目运行(后者是调试模式)的同时都会打开IISExpress,事实上本机对该web项目走的就 ...

  9. (转载)JDK中的设计模式

    写的很好,学习道路更轻松一些 原文地址:http://blog.csdn.net/gtuu0123/article/details/6114197 JDK中设计模式 分类: Java相关 设计模式 2 ...

  10. 委托demo

    delegate bool Filter(string s); class test { static void Main() { Filter f=new Filter(A); Display(ne ...