用C语言编写一个程序,验证输入的身份z是否合法?

用C语言编写一个程序,验证输入的身份z是否合法?,第1张

源程序如下:

#include"stdio.h"

voidmain()

{

inti   /*身份z的第i位*/

ints[17] /*定义一个数组用来存放身份z的前17位*/

intt[17] /*各位相乘后的数组*/

intm   /*余数*/

intt18  /*身份z的第18位0--9*/

chart18c /*身份z的第18位X*/

longintsum=0

for(i=0i<17i++)

{

printf("请输入身份z的第%d位:",i+1);

scanf("%d",&s[i])

switch(i+1)

{

/*身份z的1到17位要乘的数一次是7910584216379105842*/

case1:t[i]=s[i]*7break

case2:t[i]=s[i]*9break

case3:t[i]=s[i]*10break

case4:t[i]=s[i]*5break

case5:t[i]=s[i]*8break

case6:t[i]=s[i]*4break

case7:t[i]=s[i]*2break

case8:t[i]=s[i]*1break

case9:t[i]=s[i]*6break

case10:t[i]=s[i]*3break

case11:t[i]=s[i]*7break

case12:t[i]=s[i]*9break

case13:t[i]=s[i]*10break

case14:t[i]=s[i]*5break

case15:t[i]=s[i]*8break

case16:t[i]=s[i]*4break

case17:t[i]=s[i]*2break

}

sum=sum+t[i]

}

printf("前17位相乘后的和为%ld\n",sum)

m=sum%17

printf("对17取余后的值位:",m)

switch(m)

}

/*各个余数所对应第18位身份z号10X98765432*/

case0:t18=1printf("这是一个合法的身份z号码,第18位是%d",t18)break

case1:t18=0printf("这是一个合法的身份z号码,第18位是%d",t18)break

case2:t18c='X'printf("这是一个合法的身份z号码,第18位是%c",t18c)break

case3:t18=9printf("这是一个合法的身份z号码,第18位是%d",t18)break

case4:t18=8printf("这是一个合法的身份z号码,第18位是%d",t18)break

case5:t18=7printf("这是一个合法的身份z号码,第18位是%d",t18)break

case6:t18=6printf("这是一个合法的身份z号码,第18位是%d",t18)break

case7:t18=5printf("这是一个合法的身份z号码,第18位是%d",t18)break

case8:t18=4printf("这是一个合法的身份z号码,第18位是%d",t18)break

case9:t18=3printf("这是一个合法的身份z号码,第18位是%d",t18)break

case10:t18=2printf("这是一个合法的身份z号码,第18位是%d",t18)break

default:printf("这不是一个合法的身份z号码")

}

printf("\n")

}

VC++6.0测试如下(输入一位后按回车输入第二位数)。

在 C 语言中,可以使用程序验证表达式的结果,其中包括等于(==) *** 作符。下面是一个例子,演示了如何使用 C 语言程序计算并验证一个简单的数学表达式:

```c

#include <stdio.h>

int main() {

int a = 5, b = 2, c

c = a + b // 计算 a + b 的值

printf("a + b = %d\n", c)

c = a - b // 计算 a - b 的值

printf("a - b = %d\n", c)

c = a * b // 计算 a * b 的值

printf("a * b = %d\n", c)

c = a / b // 计算 a / b 的值

printf("a / b = %d\n", c)

c = a % b // 计算 a % b 的值

printf("a %% b = %d\n", c)

if (a == b) { // 判断 a 是否等于 b

printf("a 等于 b\n")

} else {

printf("a 不等于 b\n")

}

return 0

}

```

在上述代码中,我们定义了两个整型变量 `a` 和 `b`,并初始化为 5 和 2。然后,我们使用加、减、乘、除和模运算等数学运算符计算表达式的结果,并将结果输出到控制台中。同时,我们使用等于(==)运算符判断 `a` 是否等于 `b`,并根据结果输出相应的提示信息。

需要注意的是,在实际应用中,还需要考虑整型溢出、精度误差等问题,以确保计算结果的正确性和稳定性。另外,对于浮点型数据类型的表达式,也可以通过类似的方式进行计算和验证。

您好,很高兴回答您的问题。

在c语言中,printf函数代表输出语句,是将相关内容按照要求显示在屏幕上,目的就是为了验证程序的正确与否。

在这个输出语句中,格式为printf("格式字符",输出项列表),表示将输出项列表中的变量值按照对应的格式字符要求输出。格式字符中有%加字母的格式符,代表输出数据的类型,有\加字符表示的转义字符,按照意思输出。除此之外的字符都是普通字符,会照原样输出。

您这个程序中的input r:就是典型的转义字符,会照原样显示在屏幕上,目的是为了起到提示作用,告诉程序运行者,接下来需要输入r这个变量的值。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7900271.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存