习题合集三
#import <Foundation/Foundation.h>
//1用函数实现 : 随机产生20个[10 , 100]的正整数,输出这些数以及他们中的最大数
void RadomMax(int arraya[],int count){
int max = 0;
for (int i = 0; i < 20; i++) {
arraya[i]=arc4random()%(100-10-1)+10;
printf("%d\n",arraya[i]);
if (arraya[i]>10) {
max = max > arraya[i] ? max : arraya[i];
}
}
printf("最大值为:%d\n",max);
}
//用函数实现 : 输入一个整数,判断奇偶,并返回判断结果(BOOL)
int ParityNum(int a){
// printf("请输入一个数%d",&a);
// scanf("%d",&a);
BOOL b = a%2==0;
if (b == 0) {
printf("%d是奇数",a);
}else{
printf("%d是偶数",a);
}
return b;
}
//3计算double类型的一维数组的平均值
//要求:
//1、编写一函数,计算n个元素的一维数组的平均值。
//2、在main()函数中调用该函数。
//3、用全局变量存储平均值。
double average = 0;
void averageArrayNumber(int arr[],int count){
int sum = 0;
for (int i = 0; i < count; i++) {
sum = sum + arr[i];
printf("%d ",arr[i]);
}
average = sum/count;
printf("该数组的平均值为%f",average);
}
//4一维浮点型数组的冒泡排序函数
//题目重点
//函数的声明语法
//冒泡排序算法
void BubbleArray(double arr[],int count){
for (int i = 0; i < count - 1; i++) {
for (int j = 0; j < count - 1 - i; j++) {
if (arr[j]>arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for (int i = 0 ; i < count; i++) {
printf("%f ",arr[i]);
}
}
//5“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。
void PalindromicNumber(char a[]){
unsigned long length = strlen(a);
int aa = 0;
for (int i = 0; i<length/2;i++ ) {
if (a[i] - a[length-i-1] == 0) {
aa = 0;
}else{
aa = 1;
break;
}
}
if (aa == 0) {
printf("是回文");
}else{
printf("不是回文");
}
}
//6编写函数统计一个三位正整数各位数的和。
void ThreeSum(int m){
//100位
int a = m/100;
//个位
int b = m%10;
int c = (a/10)%10;
int sum = a+b+c;
printf("%d的各位数和为:%d",m,sum);
}
//7.1(1)编写实现strlen同功能的函数stringLength。
void stringLength(char c[]){
int n = 0;
while (c[n] != '\0') {
n++;
}
printf("%d",n);
}
//7.2编写实现strcpy同功能的函数stringCopy。
void stringCopy(char m[],char n[]){
unsigned long alength = strlen(m);
unsigned long blength = strlen(n);
if (alength == blength) {
for (int i = 0; i < alength;i++ ) {
m[i]=n[i];
}
}
for (int j = 0; j < alength; j++) {
printf("%c ",m[j]);
}
}
//7.3编写实现strcat同功能的函数stringCatch。//注意 \0
void stringCatch(char a[],char b[]){
unsigned long alength = strlen(a);
unsigned long blength = strlen(b);
for (int i = 0 ; i < blength; i++) {
a[alength+i] = b[i];
}
for (int i = 0; i<(alength+blength); i++) {
printf("%c",a[i]);
}
}
//7.4编写实现strcmp同功能的函数string Compare。
void stringCompar(char a[],char b[]){
unsigned long alength = strlen(a);
unsigned long blength = strlen(b);
int sum = 0;
for (int i = 0; (i < alength )&&(i<blength); i++) {
if (a[i]==b[i]) {
sum =0;
}else{
sum = a[i]-b[i];
}
}
printf("%d",sum);
}
//8编写一个函数:将一个字符串中相同的元素删除,并在main()中调用,并输出
void DeleSameNum(char a[]){
unsigned long length = strlen(a);
int k = 0;
for (int i = 0; i < length; i++) {
for(int j = i+1;j<length;j++){
if (a[i] == a[j]) {
for ( k = j; k < length; k++) {
a[k]=a[k + 1];
}
length --;
a[k] = '\0';
j--;
}
}
}
length = strlen(a);
printf("%lu",length);
for (int i = 0; i<length; i++) {
printf("%c",a[i]);
}
}
int main(int argc, const char * argv[]) {
// int a[20]={};
//RadomMax(a, 20);
// int n ;
// printf("请输入一个数:");
// scanf("%d",&n);
// ParityNum(n);
//int as[3]={1,2,9};
//averageArrayNumber(as,3);
// double ad[] = {12.0,45.0,2.0,36.0,5.0};
// BubbleArray(ad, 5);
//ThreeSum(124);
// char parNum[]= "ajiea";
// PalindromicNumber(parNum);
// char s[] = "asdfs";
// stringLength(s);
char am[] = "sdadsf";
// char bm[] = "sdp";
//stringCopy(am, bm);
//stringCatch(am,bm);
// stringCompar(am, bm);
DeleSameNum(am);
return 0;
}