小编7ke*_*ani的帖子

如果用户输入非数字字符,如何仅扫描整数并重复读取?

这是一个年轻的tyro问题,C代码试图阻止用户输入一个小于0或大于23的字符或整数.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    const char *input;
    char *iPtr;
    int count = 0;
    int rows;

    printf("Enter an integer: ");
    scanf("%s", input);
    rows = strtol(input, &iPtr, 0);
    while( *iPtr != '\0') // Check if any character has been inserted
    {
        printf("Enter an integer between 1 and 23: ");
        scanf("%s", input);
    }
    while(0 < rows && rows < 24) // check if the user input is within the boundaries
    {
        printf("Select an integer from 1 to 23: "); …
Run Code Online (Sandbox Code Playgroud)

c validation user-input

13
推荐指数
1
解决办法
10万
查看次数

Matlab:对for循环内的列进行算术运算(简单但不可靠!)

我试图表示一个简单的矩阵m*n(我们假设它只有一行!),使得m1n1 = m1n1 ^ 1,m1n2 = m1n1 ^ 2,m1n3 = m1n1 ^ 3,m1n3 = m1n1 ^ 4,.. .m1ni = m1n1 ^ i.换句话说,我试图在矩阵列上迭代n次以在末尾添加一个新的向量(列),使得每个索引具有与第一个向量相同的值但是被提升到其列号的幂ñ.

这是原始载体:

v =
    1.2421
    2.3348
    0.1326
    2.3470
    6.7389
这是第三次迭代后的v:

v = 
    1.2421    1.5429    1.9165
    2.3348    5.4513   12.7277
    0.1326    0.0176    0.0023
    2.3470    5.5084   12.9282
    6.7389   45.4128  306.0329
现在考虑到我是Matlab中的一个总菜鸟,我真的低估了这个看似简单的任务的难度,这花了我差不多一天的调试和网上冲浪找到任何线索.这是我提出的:

rows = 5;
columns = 3;
v = x(1:rows,1);
k = v;
Ncol = ones(rows,1);
extraK = ones(rows,1);

disp(v)

for c = 1:columns
    Ncol = k(:,length(k(1,:))).^c; % a verbose way of …
Run Code Online (Sandbox Code Playgroud)

matlab for-loop vector matrix dimensions

0
推荐指数
1
解决办法
102
查看次数

标签 统计

c ×1

dimensions ×1

for-loop ×1

matlab ×1

matrix ×1

user-input ×1

validation ×1

vector ×1