1.编程求两个复数的和
结构体
函数
返回值是结构体
参数 两个结构体
#include <stdio.h>
typedef struct _complex
{ //以结构体的形式定义一个复数
int re;
int im;
}Complex;
/*
函数名:add_complex(Complex *com1, Complex *com2)
参数列表:结构体指针com1,com2
函数功能:两个复数以结构体的形式相加
返回值:返回一个结构体
*/
Complex add_complex(Complex *com1, Complex *com2)
{
if(com1 == NULL || com2 == NULL)
{
return;
}
Complex sumcom = {0};
sumcom.re = com1->re + com2->re;
sumcom.im = com1->im + com2->im;
return sumcom;
}
void print_complex(Complex com)
{ //以复数形式打印结构体
printf("complex = %d + %di\n",com.re, com.im);
}
int main()
{
Complex com1 = {1,2};
Complex com2 = {3,4};
print_complex(com1);
print_complex(com2);
print_complex(add_complex(&com1,&com2)); //打印com1,com2相加值
return 0;
}
2.已知一维整型数组a中的数已按由小到大的顺序排列,
编写程序,删去一维数组中所有相同的数,使之只剩一个。
#include <stdio.h>
void unique(int array[],int *len)
{
if(array == NULL || len == NULL)
{
return ;
}
int *pa = array;
int i,j;
for(i = 0; i < *len - 1; i++)
{
if(pa[i] == pa[i+1])
{
for(j = i; j < *len-1; j++)
{
pa[j] = pa[j+1];
}
(*len)--;
i--;
}
}
}
int main()
{
int a[]={1,2,2,3,4,5,5,6,7,8,8,8,9,9};
int len = sizeof(a)/sizeof(int);
int i;
printf("len = %d\n",len);
for(i = 0; i < len; i++)
{
printf("%d ",a[i]);
}
printf("\n");
unique(a,&len);
printf("len = %d\n",len);
for(i = 0; i < len; i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
3.统计一个英文句子中含有英文单词的个数,单词之间用空格隔开。
#include <stdio.h>
int count_word(char *str)
{
if(str == NULL)
{
return -1;
}
int count = 0;
char *p = str;
while(*p++ != '\0')
{
if(*p == ' ' || *p ==',')
{
count++;
}
}
count++;
return count;
}
int main()
{
char str[] = "You are from Shanghai";
int count = count_word(str);
printf("The count of word is %d\n",count);
return 0;
}