9月12号

一直军训好几天没写了,今天记录一个总的
%取余,/取整
例如;100%10=0,123%10=3
100/10=10,123/10=12

C语言如何将多个数字各位数存入一个数组中

#include<stdio.h>
#define N 100
int main ()
{
    int t;
    int n=0;
    int i=0;
    int x=0;
    int j;
    scanf("%d",&n);
    char a [100];
    n=0;
    while(n)
    {
        a[x]=n%10;
        x++;
        n/=10;
    }
    for(i=0,j=x-1;i<j;i++,j--){
        char tmp = a[i];
        a[i]=a[j];
        a[j]=tmp;
    }

    return 0;
}

因为我们输入的值经过循环后存入的次序是颠倒的,然后需要把这个数组的顺序给调正,所以上面的这个一个代码片段就可以做到这一步,(见下)

for(i=0,j=x-1;i<j;i++,j--){
        char tmp = a[i];
        a[i]=a[j];
        a[j]=tmp;

输入一个double的变量,输入的值和存入的数字可能会有不同,因为他们有损,如何解决,日后补充!

在PTA中,基础题里面7-3题目要求如下
7-3 逆序的三位数(10 分)
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

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

int main ()
{
    int len=0;
    int i=0;
    int n=0;
    char a[100];
    scanf("%s",a);
    for(i=0;a[i];i++)
        len++;
    for(i=len-1;i>=0;i--)
        if(a[i]=='0')
            len--;
    for(n=len-1;n>=0;n--)   
    {

        printf ("%c",a[n]);
    }
    return 0 ;
}

我在这里优先考虑是如何将输入的数的长度计算出来,现在用len表示数组长度,用一个for循环,因为数组中除有效值以为,最后一位是/0表示停止,而且本题优先把输入的数已经输入到数组中,所以a[i]的时候就是数组中的第三位,然后就停止了.a[i]在此处等价于a[i]=0,a[i]!=’0’

下一个问题
while循环
while(n)中
n是bool型变量时,就是代表n为true时运行循环,
n是int型时,就是代表n为1时运行循环
n为表达式,就代表表达式成立时运行循环

for循环中
(表达式1;表达式2;表达式3)
表达式1是初始化语句
表达式2是判断
表达式3是循环结束后变量如何变化

猜你喜欢

转载自blog.csdn.net/yang8627/article/details/82659466