C基础0614作业

练习一

输入一个字符串。删除空格

hello world ! ! !

#include <myhead.h>

int main(int argc, const char *argv[])
{
	char str[100] = "";
	printf("Please enter a string\n");
	gets(str);
	int len = strlen(str);
	int i, j;
	for(i=0; i<len; i++)
	{
		for(j=0; j<len-i; j++)
		{
			if(str[j] == ' ')
			{
				char t = str[j];
				str[j] = str[j+1];
				str[j+1] = t;
			}
		}
	}
	puts(str);

	return 0;
}

练习二

输入一个字符串,实现单词的逆置

good good study ---->study good good

//1,先整体逆置

yduts doog doog

//、2单词逆置

study good good

#include <myhead.h>

int main(int argc, const char *argv[])
{
	char str1[100] = "";
	char str2[100] = "";
	char str3[100] = "";
	printf("Please enter a string\n");
	gets(str1);

	// global inverted
	int len = strlen(str1);
	int i, j, k;
	for(i=1; i<=len; i++)
		str2[i-1] = str1[len-i];
	strcpy(str3, str2);

    // partially inverted
	for(i=0; i<len; i++)
	{
		if((i==0 && str2[i]!=' ') || (str2[i]!=' ' && str2[i-1]==' '))
			k = i;
		if(str2[i+1]=='\0' || (str2[i]!=' ' && str2[i+1]==' '))
		{
			for(j=0; j<=i-k; j++)
			{
				str3[k+j] = str2[i-j];
			}
		}
	}
	printf("After changing:\n");
	puts(str3);
	return 0;
}

练习三

输入一个字符串,计算单词的个数

"good good study" 3

ii+1 ii+1 ii+1

#include <myhead.h>

int main(int argc, const char *argv[])
{
	char str[100] = "";
	printf("Please enter a string\n");
	gets(str);
	int len = strlen(str);
	int i, count = 0;
	for(i=0; i<len; i++)
	{
		if((str[i]!=' ' && str[i+1]==' ') || str[i+1]=='\0')
			count++;
	}
	printf("There are %d words\n", count);
	return 0;
}

练习四

“鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”

#include <myhead.h>

int main(int argc, const char *argv[])
{
	int a, b, c;
	int sum = 0;
	for(a=0; a<=20; a++)
	{
		for(b=0; b<=33; b++)
		{
			c = 100 - a -b;
			sum = 5*a + 3*b + c/3;
			if((sum == 100) && (c%3 == 0))
				printf("There are %d roosters, %d hens, %d chicks\n", a, b, c);
		}
	}
	return 0;
}

练习五

打印图形

#include <myhead.h>

int main(int argc, const char *argv[])
{
	int i, j;
	int mul;
	for(i=1; j<=9; i++)
	{
		for(j=1; j<=i; j++)
		{
			mul = i * j;
			printf("%d×%d=%-2d ", j, i, mul);
		}
		putchar(10);
	}

	return 0;
}

练习六

循环输入n个元素,交换数组中最大值和最小值

12 3 5 2 5 --->2 3 5 12 5

#include <myhead.h>

int main(int argc, const char *argv[])
{
	int arr[100];
	int i;
	int count = 0;
	printf("Please enter some number\n");
	printf("(End in 0)\n");
	for(i=0; ; i++)
	{
		scanf("%d", &arr[i]);
		if(arr[i] == 0)
			break;
		count++;
	}
	printf("Before changing:\n");
	int max = 0, min = 0, temp;
	for(i=0; i<count; i++)
	{
		printf("%-4d ", arr[i]);
		if(arr[max] < arr[i])
			max = i;
		if(arr[min] > arr[i])
			min = i;
	}
	putchar(10);
	temp = arr[max];
	arr[max] = arr[min];
	arr[min] = temp;
	printf("After changing:\n");
	for(i=0; i<count; i++)
		printf("%-4d ", arr[i]);
	putchar(10);

	return 0;
}

练习七

输入字符串,输入变量k的值,将字符循环右移k位

eg: k=2

char arr[]="abcde"

移动的结果是:

deabc

#include <myhead.h>

int main(int argc, const char *argv[])
{
	char str1[100] = "";
	char str2[100] = "";
	int k, i, j;
	printf("Please enter a string\n");
	gets(str1);
	printf("k = ");
	scanf("%d", &k);
	int len = strlen(str1);
	for(i=1; i<=k; i++)
	{
		for(j=0; j<len-1; j++)
		{
			str2[j+1] = str1[j];
		}
		str2[0] = str1[len-1];
		strcpy(str1, str2);
	}
	printf("After shift right %d places:\n", k);
	puts(str2);

	return 0;
}

练习八

定义字符串并输入,请实现对字符串每个字符升序排序

“bdcae” --->"abcde"

#include <myhead.h>

int main(int argc, const char *argv[])
{
	char str[100];
	int len = strlen(str);
	printf("Please enter a string\n");
	scanf("%s", str);
	for (int i = 0; i < len - 1; i++) 
	{
		int min = i;
		for (int j = i + 1; j < len; j++) 
		{
			if (str[min] < str[j]) 
			{
				min = j;
			}
		}
		if(min != i)
		{
			char temp = str[min];
			str[min] = str[i];
			str[i] = temp;
		}
	}

	printf("After changing:\n");
	printf("%s\n", str);
	return 0;
}

练习九

输入5个学生的姓名,请输出姓名中的最大值

#include <myhead.h>

int main(int argc, const char *argv[])
{
	char str[5][100] = {""};
	printf("Please enter 5 name\n");
	for(int i=0; i<5; i++)
	{
		scanf("%s", str[i]);
	}
	char max[100];
	strcpy(max, str[0]);
	for(int i=0; i<5; i++)
	{
		if(strcmp(max, str[i]) < 0)
		{
			strcpy(max, str[i]);
		}
	}
	printf("The maximum values is  %s\n", max);
	return 0;
}

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
城市应急指挥系统是智慧城市建设的重要组成部分,旨在提高城市对突发事件的预防和处置能力。系统背景源于自然灾害和事故灾难频发,如汶川地震和日本大地震等,这些事件造成了巨大的人员伤亡和财产损失。随着城市化进程的加快,应急信息化建设面临信息资源分散、管理标准不统一等问题,需要通过统筹管理和技术创新来解决。 系统的设计思路是通过先进的技术手段,如物联网、射频识别、卫星定位等,构建一个具有强大信息感知和通信能力的网络和平台。这将促进不同部门和层次之间的信息共享、交流和整合,提高城市资源的利用效率,满足城市对各种信息的获取和使用需求。在“十二五”期间,应急信息化工作将依托这些技术,实现动态监控、风险管理、预警以及统一指挥调度。 应急指挥系统的建设目标是实现快速有效的应对各种突发事件,保障人民生命财产安全,减少社会危害和经济损失。系统将包括预测预警、模拟演练、辅助决策、态势分析等功能,以及应急值守、预案管理、GIS应用等基本应用。此外,还包括支撑平台的建设,如接警中心、视频会议、统一通信等基础设施。 系统的实施将涉及到应急网络建设、应急指挥、视频监控、卫星通信等多个方面。通过高度集成的系统,建立统一的信息接收和处理平台,实现多渠道接入和融合指挥调度。此外,还包括应急指挥中心基础平台建设、固定和移动应急指挥通信系统建设,以及应急队伍建设,确保能够迅速响应并有效处置各类突发事件。 项目的意义在于,它不仅是提升灾害监测预报水平和预警能力的重要科技支撑,也是实现预防和减轻重大灾害和事故损失的关键。通过实施城市应急指挥系统,可以加强社会管理和公共服务,构建和谐社会,为打造平安城市提供坚实的基础
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值