用函数写
1.编程求两个复数的和
结构体
函数
返回值是结构体
参数 两个结构体
#include <stdio.h>
#include <stdlib.h>
typedef struct _complex
{
int Re;
int Im;
}complex;
complex create(int a,int b)
{
complex x;
x.Re =a;
x.Im =b;
return (x);
}
complex add(complex x1,complex x2)
{
complex sum;
sum.Re =x1.Re +x2.Re;
sum.Im =x1.Im +x2.Im;
return (sum);
}
void print_complex(complex com)
{
printf("%d + %di\n",com.Re,com.Im);
}
int main()
{
int a;
int b;
complex x1,x2,x3;
printf("请输入第一个数字:\n");
scanf("%d %d",&a,&b);
x1=create(a,b);
print_complex(create(a,b));
printf("请输入第二个数字:\n");
scanf("%d %d",&a,&b);
x2=create(a,b);
print_complex(create(a,b));
x3=add(x1,x2);
print_complex(add(x1,x2));
return 0;
}
2.已知一维整型数组a中的数已按由小到大的顺序排列,
编写程序,删去一维数组中所有相同的数,使之只剩一个。
#include <stdio.h>
void unique(int a[],int *len)
{
if(a== NULL || len == NULL)
{
return ;
}
int *pa = a;
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,1,1,1,2,2,2,3,3,4,4,5,6,7,7,8,8};
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 countWord(char *str)
{
if(str == NULL)
{
return -1;
}
int count = 0;
char *pa = str;
while(*pa++ != '\0')
{
if(*pa == ' ')
{
count++;
}
}
count++;
return count;
}
int main()
{
char str[] = "what is you name";
int count = countWord(str);
printf("The amount of word is :%d\n",count);
return 0;
}