for(i=0;num[i]!='\n';i++) scanf("%c",&num[i]); 为啥无法结束输入?? num是浮点型的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了for(i=0;num[i]!='\n';i++) scanf("%c",&num[i]); 为啥无法结束输入?? num是浮点型的相关的知识,希望对你有一定的参考价值。

因为scanf是默认以回车结束输入的,并且结束输入的回车不会输入到变量中,而程序一直在等待换行符的输入。用getchar或者getch这种函数输入就可以输入\n了 参考技术A #include<stdio.h>

int fun(int arr[],int n)

int i,num=0;
for(i=0;i<10;i++)
if(n==arr[i])
return (i+1);
return 0;


int main()

int arr[10];
int n,i;
scanf("%d",&n);
for(i=0;i<10;i++)
scanf("%d",&arr[i]);
if(!fun(arr,n))
printf("Not found!\n");
else
printf("%d\n",fun(arr,n));
return 0;
参考技术B 类型不对,num 应改为 char 或 unsigned char 型

leetcode 31 Next Permutation

class Solution {
public:
    void nextPermutation(vector<int> &num) {
        int i, j, n = num.size();
        for (i = n - 2; i >= 0; --i) {
            if (num[i + 1] > num[i]) {
                for (j = n - 1; j >= i; --j) {
                    if (num[j] > num[i]) break;
                }
                swap(num[i], num[j]);
                reverse(num.begin() + i + 1, num.end());
                return;
            }
        }
        reverse(num.begin(), num.end());
    }
};

以上是关于for(i=0;num[i]!='\n';i++) scanf("%c",&num[i]); 为啥无法结束输入?? num是浮点型的的主要内容,如果未能解决你的问题,请参考以下文章

c语言 输入一个字符串,求出其中大写字母的个数

C语言中error LNK2001怎么解决?

C语言语句执行顺序(初学者)

3. 编一程序,从键盘输入一个三位数,求出其逆序数并输出,例如输入123,输出321。

C语言中字符统计问题

用数组编写strcpy函数,不用指针