学校作业练习

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

 用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数。

//void my_long(char* a, int n)
//{
//	int num = 0;
//	int max = 0;
//	int biao = 0;
//	int biao2 = 0;
//	int i2 = 0;
//	int i = 0;
//	for (i; i < n; i++)
//	{
//		if (*(a + i) != ' ' && *(a + i + 1) != '\0')
//		{
//			num++;
//		}
//		else
//		{
//			if (max == num)
//			{
//				biao2 = i;
//			}
//			else if (max < num)
//			{
//				biao = i;
//				max = num;
//			}
//			num = 0;
//		}
//	}
//	int j = 0;
//	int e = biao - max;
//	printf("The Longest word is: ");
//	while (*(a + e + j) != ' ' && *(a + e + j) != '\0')
//	{
//		if (*(a + e + j) == '.')
//		{
//			break;
//		}
//		printf("%c", *(a + e + j));
//		j++;
//	}
//	int c = 0;
//	if (biao2 != 0)
//	{
//		printf(" ");
//		int f = biao2 - max;
//		while (*(a + c + f) != ' ' && *(a + c + f) != '\0')
//		{
//			if (*(a + c + f) == '.')
//			{
//				break;
//			}
//			printf("%c", *(a + f + c));
//			c++;
//		}
//	}
//}
//
//int main()
//{
//	char arr[80] = { 0 };
//	gets(arr);
//	int len = strlen(arr);
//	my_long(arr, len);
//	return 0;
//}


写一个函数,用“起泡法”对从键盘输入的10个字符按由小到大顺序排列。


//#include <stdio.h>
//#include <string.h>
//void sort(char* a)
//{
//	int min = *a;
//	for (int i = 0; i < 9; i++)
//	{
//		for (int j = 0; j < 9 - i; j++)
//		{
//			if (*(a + j) > *(a + j + 1))
//			{
//				min = *(a + j + 1);
//				*(a + j + 1) = *(a + j);
//				*(a + j) = min;
//			}
//		}
//	}
//}
//int main()
//{
//	char str[11] = { 0 };
//	while (1)
//	{
//		gets(str);
//		if (strlen(str) != 10)
//		{
//			printf("The length of the string is not equal to N, input again!");
//		}
//		else
//		{
//			break;
//		}
//	}
//	sort(str);
//	printf("string sorted:");
//	for (int i = 0; i < 10; i++)
//	{
//		printf("%c", str[i]);
//	}
/
//	return 0;

          求一个字符串长度

//#include <stdio.h>
//
//int length(char* a)
//{
//	int num = 0;
//	int i = 0;
//	while (*(a + i) != '\0')
//	{
//		num++;
//		i++;
//	}
//	return num;
//}
//int main()
//{
//	char arr[100] = { 0 };
//	gets(arr);
//	int n = length(arr);
//	printf("The length of string is %d", n);
//
//	return 0;
//}
要求输出3门课程平均成绩和总平均成绩,以及3门课程平均分最高的学生数据(包括学号、姓名、3门课程的成绩和平均成绩)。

要求用一个input函数输入10个学生数据,用一个average函数求平均成绩,用max函数找出平均成绩最高的学生数据。
例如本程序的输出格式为:
首先输出每个学生3门课程平均成绩和总平均成绩,小数点后保留两位有效数字。
然后输出平均成绩最高的学生的数据(包括学号、姓名、3门课程的成绩、平均成绩),其中,课程成绩和平均成绩,小数点后保留两位有效数字。

//#include <stdio.h>
//
//#define N 10
//
//
//struct student
//{
//	char num[6];
//	char name[8];
//	float score[3];
//	float avr;
//}stu[N];
//
//int main()
//{
//	float average = 0.0;
//	float aver[10] = { 0.0 };
//	float sum = 0.0;
//	for (int i = 0; i < 10; i++)
//	{
//		scanf("%s", &stu[i].num);
//		scanf("%s", &stu[i].name);
//		for (int j = 0; j < 3; j++)
//		{
//			scanf("%f", &stu[i].score[j]);
//			sum += stu[i].score[j];
//		}
//		aver[i] = sum / 3.0;
//		sum = 0;
//		average += aver[i];
//	}
//	float num = 0;
//	for (int j = 0; j < 10; j++)
//	{
//		printf("%.2f\n", aver[j]);
//	}
//	float n = average / 10.0;
//	printf("%.2f\n", n);
//	float max = aver[0];
//	int biao = 0;
//	int biao2 = 0;
//	for (int i = 0; i < 9; i++)
//	{
//		if (aver[i] == max)
//		{
//			biao2 = i;
//		}
//		else if (aver[i] > max)
//		{
//			max = aver[i];
//			biao = i;
//
//		}
//	}
//	printf("%s %s %.2f %.2f %.2f %.2f.", stu[biao].num, stu[biao].name, stu[biao].score[0], stu[biao].score[1], stu[biao].score[2], max);
//	if (biao2)
//	{
//		printf("\n");
//		printf("%s %s %.2f %.2f %.2f %.2f.", stu[biao2].num, stu[biao2].name, stu[biao2].score[0], stu[biao2].score[1], stu[biao2].score[2], max);
//	}
//	return 0;
//}

用递归法将一个整数n转换成字符串。例如,从键盘输入483,应输出字符串“483”。n的位数不确定,可以是任意的整数。

//#include <stdio.h>
//#include <string.h>
//void change(int n, char* arr, int a)
//{
//	if (n == 0)
//	{
//		if (a == 0)
//		{
//			*(arr + a) = '0';
//			a++;
//		}
//		*(arr + a) = '\0';
//		return;
//	}
//	*(arr + a) = n % 10 + '0';
//	a++;
//	change(n / 10, arr, a);
//
//
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	char arr[80] = { 0 };
//	int a = 0;
//	if (n < 0)
//	{
//		arr[a] = '-';
//		a++;
//		n = -n;
//	}
//	int j = a;
//	change(n, arr, a);
//	int i = strlen(arr);
//	printf("output: ");
//	if (j == 1)
//	{
//		printf("%c ", arr[0]);
//		for (i; i > 1; i--)
//		{
//			printf("%c ", arr[i - 1]);
//		}
//	}
//	else if (j == 0)
//	{
//		for (i; i > 0; i--)
//		{
//			printf("%c ", arr[i - 1]);
//		}
//	}
//	return 0;
//}


编写一个函数,由实参传来一个字符串,统计此字符串中的字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。  

编写程序,用scanf函数得到输入,求出结果后将其输出,输出格式参考output文件

//#include <stdio.h>
//#include <string.h>
//#include <ctype.h>
//#include <math.h>
//void number(char arr[100], int n)
//{
//	int letter = 0;		// number of letters
//	int digit = 0;		// digital number
//	int space = 0;		// number of spaces
//	int others = 0;		// number of other characters
//	for (int i = 0; i < n; i++)
//	{
//		if (isalpha(arr[i]))
//		{
//			letter++;
//		}
//		else if (arr[i] == ' ')
//		{
//			space++;
//		}
//		else if (isdigit(arr[i]))
//		{
//			digit++;
//		}
//		else
//		{
//			others++;
//		}
//
//	}
//	printf("letter:%d\ndigit:%d\nspace:%d\nothers:%d", letter, digit, space, others);
//}
//
//int main()
//{
//	char arr[100] = { 0 };
//	gets(arr);
//	printf("string: %s\n", arr);
//	int n = strlen(arr);
//	number(arr, n);
//
//
//	//
//	// TODO
//	//
//
//	return 0;
//}

输入三个字符串,按由小到大的顺序输出。


//#include <stdio.h>
//#include <string.h>
//void swap(char m[80], char n[80])
//{
//	char a[80] = { 0 };
//	strcpy(a, m);
//	strcpy(m, n);
//	strcpy(n, a);
//}
//
//int main()
//{
//	char a[80] = { 0 };
//	char b[80] = { 0 };
//	char c[80] = { 0 };
//	gets(a);
//	gets(b);
//	gets(c);
//	if (strcmp(a, b) > 0)
//	{
//		swap(a, b);
//	}
//	if (strcmp(a, c) > 0)
//	{
//		swap(a, c);
//	}
//	if (strcmp(b, c) > 0)
//	{
//		swap(b, c);
//	}
//	printf("%s\n%s\n%s\n", a, b, c);
//
//	return 0;
//}

用指向指针的指针的方法对5个字符串排序并输出。要求将排序单独写成一个函数。在主函数中从键盘读取5个字符串,并在最后输出排序后的结果。


//#include <stdio.h>
//#include <string.h>
//
//#define LINEMAX 20
//void sort(char* p[])
//{
//	char* a = 0;
//	for (int i = 0; i < 4; i++)
//	{
//		for (int j = i + 1; j < 5; j++)
//		{
//			if (strcmp(p[i], p[j]) > 0)
//			{
//				a = p[i];
//				p[i] = p[j];
//				p[j] = a;
//			}
//		}
//	}
//}
//int main()
//{
//	char arr[5][80] = { 0 };
//	char* p[5];
//	for (int i = 0; i < 5; i++)
//	{
//		scanf("%s", &arr[i]);
//		p[i] = arr[i];
//	}
//	sort(p);
//	printf("string sorted:\n");
//	for (int i = 0; i < 5; i++)
//	{
//		printf("%s\n", p[i]);
//	}

//	return 0;
//}
//
//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值