欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言 整数逆序输出 正序分解整数 最大公约数 约分最简分式 以每行一个单词的形式打印其输出 warshall算法.

程序员文章站 2022-03-21 22:17:16
...
#include<stdio.h>
int main()
{
	int num,di,d=0;
	scanf("%d",&num);
	while(num>0)
	{
		di = num%10;	//取余得到个位数字 
		d = d*10+di;	//个位数字乘10 相当于左移一位 
		num  /= 10;		//整除去掉末位 
	}
	printf("%d\n",d);
	return 0;
}
//正序分解整数
/*1234/1000=1 1234%1000=234 234/100=2 234%100=34*/
#include<stdio.h>
int main()
{
	int x;
	scanf("%d",&x);
	int mask=1;
	int t=x;
	while(t>9)
	{
		t=t/10;			//数出整数的位数,划掉个位 
		mask *= 10;
	} 
	do{
		int d = x/mask;
		printf("%d",d);
		if(mask>9)
			printf(" ");
		x %= mask;
		mask /= 10; 
	}while(mask>0);
	printf("\n");
	return 0;
}
#include<stdio.h> //辗转相除法
int main()
{
	int n,i,first=1,d,sum,j,p,t;
	scanf("%d",&n);
	for(i=1;i<n;i++)
	{
		first *= 10;   //n=3,100~999
	} 
	for(i=first;i<first*10;i++)
	{
		sum=0;
		t=i;
		while(t>0)
		{
			d=t%10;
			t=t/10;
			p=1;
			for(j=1;j<=n;j++)
				p *= d;
			sum += p;
		}
		if(sum==i)
			printf("%d\n",i);
	 } 
	return 0;
/*约分最简分式
要求用户输入一个分数,然后将其约分为最简分式。如6/12可以约分为1/2.
当分子大于分母时,不需要表达为整数,即11/8还是11/8,当分子分母相等时,仍然表达为1/1的分数形式。
输入格式:分子和分母都是正整数。提示;在scanf的格式字符串中加入"/",让scanf来处理这个斜杠
输入样例:60/120
输出样例:1/2 */
#include<stdio.h>
int main()
{
	int a,b,t,a1,b1;
	scanf("%d/%d",&a,&b);
	a1=a;
	b1=b;
	while(b>0)
	{
		t=a%b;
		a=b;
		b=t;
	}
	printf("%d/%d\n",a1/a,b1/a);
	return 0;
 } 
//以每行一个单词的形式打印其输出
#include <stdio.h>
#define IN 0    //在单词里面
#define OUT 1   //在单词外
int main()
{
    char c;
    int flag = OUT;
    while((c = getchar())!=EOF)
    {   if(c =='\n'|| c == ' '|| c == '\t')
        {
            if(flag == IN)
            {
                putchar('\n');
                flag = OUT;
            }
        } 
        else
        {
            putchar(c);
            flag = IN;
        }    
    }
    return 0;
}
#include<stdio.h>
#define M 4		//行数 
#define N 4		//列数 
int main()
{
	int a[M][N],i,j,m,n,t;
	for(i=0;i<M;i++)	//矩阵输入 
	{
		for(j=0;j<N;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	for(j=0;j<M;j++)	//从矩阵的第一列开始 
	{
		for(i=0;i<N;i++)	//遍历每一行找非零的数 
		{
			if(a[i][j]!=0)	
			{
				m=i;		//找到非零的数后记住这一行 
				n=j;		//列数变行数 
				for(t=0;t<N;t++)	
				{
					a[m][t]=a[m][t]+a[n][t];	//记住的这一行重新赋值为
				}								//这一行原来的数对应加上‘列变行’那一行的数	
			}
		}
	}
	for(i=0;i<M;i++)	//遍历矩阵,将非零数都变为 1 
	{
		for(j=0;j<N;j++)
		{
			if(a[i][j]>1)
				a[i][j]=1;
		}
	}
	printf("\n");	
	for(i=0;i<M;i++)
	{
		for(j=0;j<N;j++)
		{
			printf("%d ",a[i][j]);
		}
		printf("\n");	
	}
	return 0;
	 
 } 

相关标签: c语言 算法