首页 > 其他分享 >0407_C基础6

0407_C基础6

时间:2024-04-07 21:32:47浏览次数:16  
标签:0407 int scanf 基础 char printf include 输入

练习1:

输入m行n列得二维数组,输出每一行的和,以及每一列的和

程序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int m,n;
	printf("请输入行数:");
	scanf("%d",&m);
	printf("请输入列数:");
	scanf("%d",&n);
	int arr[m][n];
	int i,j;
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
			printf("请输入第%d行第%d列元素:",i+1,j+1);
			scanf("%d",&arr[i][j]);
		}
	}
	printf("arr数组元素为:\n");
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
			printf("%-4d ",arr[i][j]);
		}
		putchar(10);
	}
	unsigned sumline=0;
	unsigned sumrow=0;
	for(i=0;i<m;i++)
	{
		sumline=0;
		for(j=0;j<n;j++)
		{
			sumline+=arr[i][j];
		}
		printf("第%d行sum=%u\n",i+1,sumline);
	}
	for(i=0;i<n;i++)
	{
		sumrow=0;
		for(j=0;j<m;j++)
		{
			sumrow+=arr[j][i];
		}
		printf("第%d列sum=%u\n",i+1,sumrow);
	}
	return 0;
}

练习2:

输入n行n列得二维数组 ,计算四边的和减去正对角线的和得结果

程序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int n;
	printf("请输入正方形二维数组的边长:");
	scanf("%d",&n);
	int arr[n][n];
	int i,j;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			printf("请输入第%d行第%d列的值:",i+1,j+1);
			scanf("%d",&arr[i][j]);
		}
	}
	printf("数组元素为:\n");
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			printf("%-4d ",arr[i][j]);
		}
		putchar(10);
	}
	int zsum=0;
	int fsum=0;
	for(i=0;i<n;i++)
	{
		zsum+=arr[i][i];
		fsum+=arr[n-1-i][n-1-i];
	}
	int lsum1=0;
	int lsum2=0;
	int rsum1=0;
	int rsum2=0;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			if(i==0)
			{
				lsum1+=arr[i][j];
				rsum1+=arr[j][i];
			}
			if(i==n-1)
			{
				lsum2+=arr[i][j];
				rsum2+=arr[j][i];
			}
		}
	}
	printf("结果为:%d\n",(lsum1+lsum2+rsum1+rsum2)-zsum-fsum);
	return 0;
}

 

练习3:

输入m行n列得二维数组,计算二维数组得最大值

程序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int m,n;
	printf("输入行数:");
	scanf("%d",&m);
	printf("输入列数:");
	scanf("%d",&n);
	int arr[m][n];
	int i,j;
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
			printf("请输入第%d行第%d列的值:",i+1,j+1);
			scanf("%d",&arr[i][j]);
		}
	}
	printf("数组元素为:\n");
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
			printf("%-4d ",arr[i][j]);
		}
		putchar(10);
	}
	int max=arr[0][0];
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
			if(max<arr[i][j])
			{
				max=arr[i][j];
			}
		}
	}
	printf("二维数组最大值=%d\n",max);
	return 0;
}

练习4: 

编程实现二维数组转置

程序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int m,n;
	printf("请输入行数:");
	scanf("%d",&m);
	printf("请输入列数:");
	scanf("%d",&n);
	int arr[m][n];
	int arr2[n][m];
	bzero(arr,sizeof(arr));
	bzero(arr2,sizeof(arr2));
	int i,j;
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
			printf("请输入第%d行第%d列:",i+1,j+1);
			scanf("%d",&arr[i][j]);
		}
	}
	printf("arr数组元素为:\n");
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
			printf("%-4d",arr[i][j]);
		}
		putchar(10);
	}
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
			arr2[j][i]=arr[i][j];
		}
	}
	for(i=0;i<n;i++)
	{
		for(j=0;j<m;j++)
		{
			printf("%d ",arr2[i][j]);
		}
		putchar(10);
	}

	return 0;
}

 

 练习5:

输入一个字符串,删除字符串中的空格

程序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	char str[20]="";
	gets(str);
	int i;
	int j;
	int n=strlen(str);
	for(i=0;i<n+1;i++)
	{
		if(' '==str[i])
		{
			for(j=i;j<n+1;j++)
			{
				str[j]=str[j+1];
			}
			n--;
			i--;
		}
	}
	puts(str);
	return 0;
}

 

练习6: 

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

程序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	char str[100]="";
	gets(str);
	int n=strlen(str);
	int i;
	int temp;
	for(i=0;i<n/2;i++)
	{
		temp=str[n-i-1];
		str[n-i-1]=str[i];
		str[i]=temp;
	}
	int j=0;
	int nn;
	int mm;
	for(i=0;i<=n;i++)
	{
		if(' '==str[i]||i==n)
		{
			nn=i;
			mm=0;
			while(j<nn)
			{
				temp=str[i-1-mm];
				str[i-1-mm]=str[j];
				str[j]=temp;
				j++;
				nn--;
				mm++;
			}
			j=i+1;
		}
	}
	puts(str);
	return 0;
}

 思维导图

 

标签:0407,int,scanf,基础,char,printf,include,输入
From: https://blog.csdn.net/slander_1120/article/details/137471489

相关文章

  • XML文档节点导航与选择指南 | XPath基础知识
    XPath(XMLPathLanguage)是XSLT标准的主要组成部分。它用于在XML文档中浏览元素和属性,提供了一种强大的定位和选择节点的方式。XPath的基本特点代表XML路径语言:XPath是一种用于在XML文档中导航和选择节点的语言。路径样式语法:XPath使用路径表达式的“路径样式”语......
  • 学习 XSLT:XML文档转换的关键 | XSLT基础知识
    XSL(eXtensibleStylesheetLanguage)是一种用于XML的样式语言。XSL(T)语言XSLT是一种用于转换XML文档的语言。XPath是一种用于在XML文档中导航的语言。XQuery是一种用于查询XML文档的语言。它始于XSLXSL代表EXtensibleStylesheetLanguageCSS=HTM......
  • 数学基础
    数学:一:整除概念:如果\(A\)能整除\(B\)则记之为\(A|B\)即存在一个数\(k\inZ\)使\(Ak=B\)。即\(B\)是\(A\)的倍数。性质:1.如果\(a|b,b|c\)那么\(a|c\)表明整除具有传递性。2.如果\(a|b,a|c\)那么对于任意整数对\((x,y)\)满足\(x\inZ,y\inZ\)......
  • Python基础篇-Python基础01
    Python基础-day1!!!注意:本系列所写的文章全部是学习笔记,来自于观看视频的笔记记录,防止丢失。观看的视频笔记来自于:哔哩哔哩武沛齐老师的视频:2022Python的web开发(完整版)入门全套教程,零基础入门到项目实战1.文档工具typora2.环境搭建安装Python解释器学习Python语法Python......
  • springMVC基础
    三:SpringMVC1、SpringMVC简介1.1、什么是MVCMVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理数据JavaBean分为两类:一类称为实体类Bean:专门存储业务数据的,如Student、User等一类称为业务处理Bean:指Service或......
  • 致远OA系统二次开发基础入门及资料汇总
    公司有几套致远A8,包括V7和V8。虽然一直有二次开发的需求,只是该系统的二开体验,包括社区的建设真的是一言难尽。因此公司几次改动都是直接外包给厂商来进行开发。从公司这些项目中我了解了一下他们的二开情况,怎么说呢。只能说是八仙过海各显神通。在Github上也没有找到多少关于致远......
  • opencv基础操作:读取图片时使用灰度方式、转换颜色空间、使用opencv展示图片、使用open
    包含的操作有:读取图片时使用灰度方式转换颜色空间使用opencv展示图片使用opencv对BGR通道进行划分并展示,需要注意的是直接使用cv2.split()得到的B,G,R分别是单通道的,因此最终展示出来为灰度图像。    如果想保留彩色图像,可以直接对img切片来实现。使用opencv在一个窗口......
  • 学习 Git 基础知识 - 日常开发任务手册
    欢迎来到我关于Git的综合指南,Git是一种分布式版本控制系统,已经在软件开发中彻底改变了协作和代码管理方式。无论你是经验丰富的开发者还是刚开始编程之旅的新手,理解Git对于正确掌控代码、高效管理项目和与他人合作至关重要。在本教程中,我将带领你了解Git的基础知识......
  • HTML基础知识详解(下)(如果想知道html的全部基础知识点,那么只看这一篇就足够了!)
        前言:在上一篇文章中,我们已经学习完了超链接标签、列表标签和表格标签,但是我们还有一些标签没有学习,在这篇文章中,我们将学习剩余的标签。✨✨✨这里是秋刀鱼不做梦的BLOG✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客首先让我们看一下还剩余......
  • 20240407
    T1TopcoderSRM583div1Medium-TurnOnLamps发现取反一条路径相当于把两个端点到根的路径分别取反。所以只要考虑到根的情况。设\(f[i]\)表示\(i\)子树内所有边都合法的最小操作次数,则每个点只要把所有儿子的\(f\)加过来然后看到儿子的每条边是否合法即可。代码#i......