题目:依次将10个数输入,要求输出其中最大的数。
#include<stdio.h>int main()
{
int a,b,c,d,e,f,g,h,i,j,k,max,m;
printf("请依次输入10个数字,中间用空格隔开:\n");
scanf("%d %d %d %d %d %d %d %d %d %d",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j); //输入 10个数字,分别命名为字母a~j。
m= a,max= m+1; //我的想法是循环体max的值刚好字母对应ASCII表,依次加一个数,让a~j依次去if语句中比较。但自己能够感觉想法有点蠢,因为a~j已经被定义为数字了,所以感觉这里问题比较大,但想用自己的这个想法去依次提取数字。
while(m!>=j) //m会每次相加1,如a+1=b 让表达式大于j时为假
{
if(m>max)
{
max= m;
m++;
}
else
{
m++;
}
}
printf("这10个数中最大的是%d\n",m); //最后输出最大值m
return 0;
} 先感谢大佬,我知道我的想法和编的程序有点滑稽,但是想实现自己的想法。
谢谢大佬们。 变量名a,b,c只不过是替代变量所在内存的名字,是为了你方便,名字之间并不存在关联。m和他们也没有关联,m=a只不过是把变量a的值赋给m,假如a=3,m=a,m=3,m++,m=4而不是m=b
试试数组 jhq999 发表于 2023-3-23 18:37
变量名a,b,c只不过是替代变量所在内存的名字,是为了你方便,名字之间并不存在关联。m和他们也没有关联,m= ...
好的,谢谢,数组我还没有学到 1,循环体的控制条件不对劲啊,一般用自己可控的数去控制,举个例子for(int x = 0;x<10;x++)
你这里的while(m!>=j)中的m和j是键盘上输入的数值有可能一开始就不满足条件从而根本不进入循环,例如一开始m就等于29,j就等于3
2,while(m!>=j)这个写法是错的应该写成while(m<j)当然就算这么写在你这个环境下m和j也是不可控的哦
建议循环再看看例子,加油!
页:
[1]